/// <summary> /// Loads the movie DB. /// </summary> private static void LoadMovieDB() { string path = Get.FileSystemPaths.PathDatabases + OutputName.MovieDb + Path.DirectorySeparatorChar; Directory.CreateDirectory(path); FileData[] files = FastDirectoryEnumerator.GetFiles(path, "*.movie.gz", SearchOption.TopDirectoryOnly); MovieDBFactory.MovieDatabase.Clear(); foreach (FileData file in files) { string json = Gzip.Decompress(file.Path); var movieModel = JsonConvert.DeserializeObject(json, typeof(MovieModel)) as MovieModel; MovieDBFactory.MovieDatabase.Add(movieModel); string title = FileNaming.RemoveIllegalChars(movieModel.Title); string poster = path + title + ".poster.jpg"; string fanart = path + title + ".fanart.jpg"; if (File.Exists(poster)) { movieModel.SmallPoster = ImageHandler.LoadImage(poster); } if (File.Exists(fanart)) { movieModel.SmallFanart = ImageHandler.LoadImage(fanart); } } }
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { try { FileData[] fileData = FastDirectoryEnumerator.GetFiles(textBox1.Text, "*.msi", SearchOption.AllDirectories); filesCount = fileData.Count(); ManualResetEvent[] doneEvents = new ManualResetEvent[filesCount]; LocateMsiWorkerArea[] locateMsiWorkerAreaArray = new LocateMsiWorkerArea[filesCount]; ThreadPool.SetMaxThreads(Convert.ToInt32(numericUpDown1.Value), Convert.ToInt32(numericUpDown2.Value)); for (int i = 0; i < filesCount; i++) { doneEvents[i] = new ManualResetEvent(false); LocateMsiWorkerArea locateMsiWorkerArea = new LocateMsiWorkerArea(fileData[i].Path, doneEvents[i]); locateMsiWorkerArea.InstallGuid = this.ApplicationGuid; locateMsiWorkerAreaArray[i] = locateMsiWorkerArea; ThreadPool.QueueUserWorkItem(locateMsiWorkerArea.ThreadPoolCallback, i); locateMsiWorkerArea.Completed += locateMsiWorkerArea_Completed; } /*var res = from c in class1Array.AsParallel().WithDegreeOfParallelism(5) * where c.Result * select c.MSIPath;*/ List <ManualResetEvent[]> listDoneEvent = new List <ManualResetEvent[]>(); int lengthToSplit = 64; // 64 is maximun number of events allowed for Wait handle int arrayLength = doneEvents.Length; for (int i = 0; i < arrayLength; i = i + lengthToSplit) { ManualResetEvent[] val = new ManualResetEvent[lengthToSplit]; if (arrayLength < i + lengthToSplit) { lengthToSplit = arrayLength - i; } Array.Copy(doneEvents, i, val, 0, lengthToSplit); listDoneEvent.Add(val.Where(x => x != null).ToArray()); } foreach (ManualResetEvent[] item in listDoneEvent) { WaitHandle.WaitAll(item); } for (int i = 0; i < filesCount; i++) { if (locateMsiWorkerAreaArray[i].Result) { appMsis.Add(fileData[i].Path); } } } catch (Exception exe) { DisplayError(exe); } finally { } }
private void button17_Click(object sender, EventArgs e) { try { if (textBox14.Text == string.Empty) { MessageBox.Show("Please specify user name for the operations"); return; } if (checkBox5.Checked == true) { if (Directory.Exists(textBox13.Text) == false) { MessageBox.Show("Wrong directory to sync is not set"); return; } int count = 0; FileData[] files = FastDirectoryEnumerator.GetFiles(textBox2.Text, "*.wrong", checkBox4.Checked == true ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly); for (int i = 0; i < files.Length; i++) { try { File.Move(files[i].Path, textBox12.Text + "\\" + files[i].Name); count++; } catch (Exception exx) { MessageBox.Show(exx.Message); } } MessageBox.Show("Total wrong files moved to " + textBox12.Text + " are " + count); } int res = m_client.SyncFilesWithDataBase(textBox13.Text, checkBox4.Checked, textBox14.Text, 0); if (res == 0) { MessageBox.Show("Sync files is in progress"); } else { while (m_syncFileEnded == false) { Thread.Sleep(500); } m_syncFileEnded = false; } } catch (Exception err) { MessageBox.Show(err.Message); } }
/// <summary> /// Loads the movie sets db. /// </summary> private static void LoadMovieSets() { string path = Get.FileSystemPaths.PathDatabases + OutputName.MovieSets + Path.DirectorySeparatorChar; Directory.CreateDirectory(path); FileData[] files = FastDirectoryEnumerator.GetFiles(path, "*.MovieSet.gz", SearchOption.TopDirectoryOnly); MovieSetManager.CurrentDatabase.Clear(); foreach (FileData file in files) { string json = Gzip.Decompress(file.Path); var set = JsonConvert.DeserializeObject(json, typeof(MovieSetModel)) as MovieSetModel; MovieSetManager.CurrentDatabase.Add(set); } }
void SyncFileThread(string DirectoryToSync, bool recoursive, string userName, int SyncBy) { try { int count = 0; FileData[] files = FastDirectoryEnumerator.GetFiles(DirectoryToSync, "*.Bin", recoursive == true ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly); ulong g360Index; using (UploadHistoryLogApi m = new UploadHistoryLogApi(_writeListDir, false)) { m.LoadLogToMemoryDic(); string fileToAdd = string.Empty; Dictionary <string, bool> list = m.DicFileList; for (int i = 0; i < files.Length; i++) { if (list.ContainsKey(files[i].Path) == false) { switch (SyncBy) { case 0: q.AddFile(files[i].Path, m_startTime, files[i].CreationTime, out g360Index, userName); break; case 1: q.AddFile(files[i].Path, m_startTime, files[i].LastAccesTime, out g360Index, userName); break; case 2: q.AddFile(files[i].Path, m_startTime, files[i].LastWriteTime, out g360Index, userName); break; } count++; } } } pCallback(133, m_clientIpAddress, count.ToString(), string.Empty, "ok", 0, DateTime.Now, 0, m_FileOwnerUserName); } catch (Exception err) { pCallback(133, m_clientIpAddress, "0", string.Empty, err.Message, 0, DateTime.Now, 0, m_FileOwnerUserName); } }
/// <summary> /// Loads the TV DB db /// </summary> private static void LoadTvDB() { string path = Get.FileSystemPaths.PathDatabases + OutputName.TvDb + Path.DirectorySeparatorChar; Directory.CreateDirectory(path); FileData[] files = FastDirectoryEnumerator.GetFiles(path, "*.Series.gz", SearchOption.TopDirectoryOnly); TvDBFactory.TvDatabase.Clear(); foreach (FileData file in files) { string json = Gzip.Decompress(file.Path); var series = JsonConvert.DeserializeObject(json, typeof(Series)) as Series; string title = FileNaming.RemoveIllegalChars(series.SeriesName); string poster = path + title + ".poster.jpg"; string fanart = path + title + ".fanart.jpg"; string banner = path + title + ".banner.jpg"; if (File.Exists(poster)) { series.SmallPoster = ImageHandler.LoadImage(poster); } if (File.Exists(fanart)) { series.SmallFanart = ImageHandler.LoadImage(fanart); } if (File.Exists(banner)) { series.SmallBanner = ImageHandler.LoadImage(banner); } TvDBFactory.TvDatabase.Add(series.SeriesName, series); } TvDBFactory.GeneratePictureGallery(); TvDBFactory.GenerateMasterSeriesList(); }
public MachineVersionInfo[] GetMachineVersionInfo(int fileLimit) { _eventLog.WriteEntry("GetMachineVersionInfo()..", EventLogEntryType.Information); _logger.Debug("GetMachineVersionInfo() 1"); MachineVersionInfo[] machineVersionInfos = null; _logger.Debug("GetMachineVersionInfo() 2"); try { _logger.Debug("GetMachineVersionInfo() 3"); _retrievedSoftwareInfoFiles = FastDirectoryEnumerator.GetFiles(_machineSpecificDataPathUDM, "current_software*", SearchOption.AllDirectories, fileLimit); _logger.Debug("GetMachineVersionInfo() 4"); machineVersionInfos = new MachineVersionInfo[_retrievedSoftwareInfoFiles.Length]; _logger.Debug("GetMachineVersionInfo() 5"); } catch (Exception ex) { _eventLog.WriteEntry(ex.ToString(), EventLogEntryType.Error); _logger.Error(ex.ToString()); throw; } _logger.Debug(_retrievedSoftwareInfoFiles.Length + " files will be processed."); _eventLog.WriteEntry(_retrievedSoftwareInfoFiles.Length + " files will be processed.", EventLogEntryType.Information); for (int i = 0; i < _retrievedSoftwareInfoFiles.Length; i++) { try { DateTime lastUpdatedAt; int majorVersionNumber; int minorVersionNumber; string contents = File.ReadAllText(_retrievedSoftwareInfoFiles[i]); string machineGUID = GetMachineGUIDFromPath(_retrievedSoftwareInfoFiles[i]); string[] contentsArray = contents.Split(new string[] { "||" }, StringSplitOptions.RemoveEmptyEntries); string[] versionComponents = contentsArray[1].Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries); if (!DateTime.TryParse(contentsArray[0], out lastUpdatedAt)) { continue; } if (!int.TryParse(versionComponents[0], out majorVersionNumber)) { continue; } if (!int.TryParse(versionComponents[1], out minorVersionNumber)) { continue; } machineVersionInfos[i] = new MachineVersionInfo(machineGUID, lastUpdatedAt, majorVersionNumber, minorVersionNumber); } catch (Exception ex) { _eventLog.WriteEntry(ex.ToString(), EventLogEntryType.Error); } } _logger.Debug("Retrieved " + machineVersionInfos.Length + " version info data."); return(machineVersionInfos); }
private void MoveFolder_UpdateTreeViewFolderBrowser(TreeViewFolderBrowser folderTreeView, string sourceDirectory, string targetDirectory, TreeNode targetNode) { if (sourceDirectory == targetDirectory) { return; //Can't move into itself. No need for error message } try { using (new WaitCursor()) { FileData[] fileDatas = FastDirectoryEnumerator.GetFiles(sourceDirectory, "*.*", SearchOption.AllDirectories); #region Move all folder and files Logger.Trace("Move folder from:" + sourceDirectory + " to: " + targetDirectory); System.IO.Directory.Move(sourceDirectory, targetDirectory); #endregion #region Clear ImageListView ImageListViewHandler.ClearAllAndCaches(imageListView1); #endregion #region Update node tree GlobalData.DoNotTrigger_TreeViewFolder_BeforeAndAfterSelect = true; TreeViewFolderBrowserHandler.RefreshFolderWithName(folderTreeView, sourceDirectory, true); TreeViewFolderBrowserHandler.RemoveFolderWithName(folderTreeView, sourceDirectory); TreeViewFolderBrowserHandler.RefreshFolderWithName(folderTreeView, targetDirectory, true); GlobalData.DoNotTrigger_TreeViewFolder_BeforeAndAfterSelect = false; #endregion #region Update database foreach (FileData oldFileData in fileDatas) { string oldFilename = Path.GetFileName(oldFileData.Path); string newFullFilename = Path.Combine(targetDirectory, oldFilename); Logger.Trace("Rename from:" + oldFileData.Path + " to: " + newFullFilename); databaseAndCacheThumbnailPoster.Move(Path.GetDirectoryName(oldFileData.Path), Path.GetFileName(oldFileData.Path), Path.GetDirectoryName(newFullFilename), Path.GetFileName(newFullFilename)); databaseAndCacheMetadataExiftool.Move(Path.GetDirectoryName(oldFileData.Path), Path.GetFileName(oldFileData.Path), Path.GetDirectoryName(newFullFilename), Path.GetFileName(newFullFilename)); } #endregion DirectoryInfo directoryInfo = new DirectoryInfo(sourceDirectory); string targetFullFolderName = targetDirectory + directoryInfo.Parent.Name; GlobalData.DoNotTrigger_TreeViewFolder_BeforeAndAfterSelect = true; treeViewFolderBrowser1.Populate(targetDirectory); GlobalData.DoNotTrigger_TreeViewFolder_BeforeAndAfterSelect = false; } //----- Updated ImageListView with files ------ ImageListView_FetchListOfMediaFiles_FromFolder_and_Aggregate(false, true); } catch (Exception ex) { Logger.Error(ex, "Error when move folder."); AddError( sourceDirectory, AddErrorFileSystemRegion, AddErrorFileSystemMoveFolder, sourceDirectory, targetDirectory, "Issue: Failed moving directory.\r\n" + "From Directory: " + sourceDirectory + "\r\n" + "To Directory: " + targetDirectory + "\r\n" + "Error message: " + ex.Message); } }
private void InitStack() { _allFiles = FastDirectoryEnumerator.GetFiles(_rootPath, "*" + _formatter.FileExtension, SearchOption.AllDirectories); }