private static int CopyFileTo(string CopyFromRoot, string CopyToRoot, List <string> FilesToCopy) { int result = 0; //Return number of files copied. LogOperations myLog = new LogOperations(); int kk = 10001; foreach (string file in FilesToCopy) { kk += 9; string DirectoryToCheckExists = Directory.GetParent(CopyToRoot + file).ToString() + "\\"; if (Directory.Exists(DirectoryToCheckExists)) { try { File.Copy(CopyFromRoot + file, CopyToRoot + file); myLog.WriteToLogFile("Copied " + CopyFromRoot + file + " To " + CopyToRoot + file); result++; } catch (FileNotFoundException ex) { myLog.WriteToErrorLog(ex.Message + " " + ex.FileName); } catch (UnauthorizedAccessException ex) { myLog.WriteToErrorLog(ex.Message + " " + ex.Source); } } else { try { Directory.CreateDirectory(Directory.GetParent(CopyToRoot + file).ToString()); File.Copy(CopyFromRoot + file, CopyToRoot + file); myLog.WriteToLogFile("Copied " + CopyFromRoot + file + " To " + CopyToRoot + file); result++; } catch (FileNotFoundException ex) { myLog.WriteToErrorLog(ex.Message + " " + ex.FileName); } catch (UnauthorizedAccessException ex) { myLog.WriteToErrorLog(ex.Message + " " + ex.Source); } } } myLog.WriteLogs(); return(result); }
public List <string> GetFileNames(string origin) { List <string> result = new List <string>(); Queue <string> ListOfDirectories = new Queue <string>(); ListOfDirectories.Enqueue(origin); LogOperations ErrorLog = new LogOperations(); string[] Files; string[] SubDirs; while (ListOfDirectories.Count > 0) { string currentDirectory = ListOfDirectories.Dequeue(); try { Files = Directory.GetFiles(currentDirectory); foreach (string file in Files) { result.Add(file.Replace(origin, "")); } SubDirs = Directory.GetDirectories(currentDirectory); foreach (string subDirectory in SubDirs) { ListOfDirectories.Enqueue(subDirectory); } } catch (DirectoryNotFoundException ex) { ErrorLog.WriteToErrorLog("Get File Names: " + ex.Message); result.Add("Error"); } catch (UnauthorizedAccessException ex) { ErrorLog.WriteToErrorLog("Get File Names: " + ex.Message); result.Add("Error"); } } if (ErrorLog.ErrorMessageCount > 1) { ErrorLog.WriteLogs(); } else { } return(result); }