private void InitialiseWork(string srcDir, string dstDir) { DictTargetFolderToSrcFiles.Clear(); FilesProcessed.Clear(); FoldersCreated.Clear(); DirectoryInfo info = new DirectoryInfo(srcDir); foreach (var file in info.GetFiles("*.*", SearchOption.AllDirectories)) { string targetDir = FileOrganizerUtility.PrepareTargetDirFromFile(dstDir, file); if (!DictTargetFolderToSrcFiles.ContainsKey(targetDir)) { DictTargetFolderToSrcFiles.Add(targetDir, new List <FileInfo>() { file }); } else { DictTargetFolderToSrcFiles[targetDir].Add(file); } } }
private KeyValuePair <string, List <FileInfo> >?GetWork() { lock (_sync) { if (DictTargetFolderToSrcFiles.Count > 0) { KeyValuePair <string, List <FileInfo> > item = DictTargetFolderToSrcFiles.ElementAt(0); DictTargetFolderToSrcFiles.Remove(item.Key); return(item); } return(null); } }