C # copying multiple files using wildcards and saving file names

I need to copy several files from a directory using a text file that does not contain complete information.

NCR.txt:
Red

the destination directory has in it:
red1.txt
red3.txt
red44.txt

Catalog

dest should have:
red1.txt
red3.txt
red44.txt

My code is:

System.IO.Directory.CreateDirectory(@"C:\nPrep\" + textBox1.Text + "\\red"); if (checkBox3.Checked) { String[] file_names = File.ReadAllLines(@"C:\NCR.txt"); foreach (string file_name in file_names) { string[] files = Directory.GetFiles(textBox2.Text, file_name + "*.txt"); foreach (string file in files) System.IO.File.Copy(file, @"C:\nPrep\" + textBox1.Text + "\\red\\"); } } 
+4
source share
3 answers

All suggestions were excellent and sophisticated for all the tips, but it was perfect:

 if (checkBox3.Checked) { string[] lines = File.ReadAllLines(@"C:\NCR.txt"); foreach (string line in lines) { string[] files = Directory.GetFiles(textBox2.Text, line + "*.txt"); foreach (string file in files) { FileInfo file_info = new FileInfo(file); File.Copy(file, @"C:\InPrep\" + textBox1.Text + "\\text\\" + file_info.Name); } } } 
+3
source
 //FileInfo & DirectoryInfo are in System.IO //This is something you should be able to tweak to your specific needs. static void CopyFiles(DirectoryInfo source, DirectoryInfo destination, bool overwrite, string searchPattern) { FileInfo[] files = source.GetFiles(searchPattern); //this section is what really important for your application. foreach (FileInfo file in files) { file.CopyTo(destination.FullName + "\\" + file.Name, overwrite); } } 

This version is more ready for copying:

 static void Main(string[] args) { DirectoryInfo src = new DirectoryInfo(@"C:\temp"); DirectoryInfo dst = new DirectoryInfo(@"C:\temp3"); /* * My example NCR.txt * *.txt * a.lbl */ CopyFiles(src, dst, true); } static void CopyFiles(DirectoryInfo source, DirectoryInfo destination, bool overwrite) { List<FileInfo> files = new List<FileInfo>(); string[] fileNames = File.ReadAllLines("C:\\NCR.txt"); foreach (string f in fileNames) { files.AddRange(source.GetFiles(f)); } if (!destination.Exists) destination.Create(); foreach (FileInfo file in files) { file.CopyTo(destination.FullName + @"\" + file.Name, overwrite); } } 
+11
source
  string sourceDir = @"c:\"; string destDir = @"c:\TestDir"; var r = Directory.GetFiles(sourceDir, "red*.txt"); //Replace this part with your read from notepad file foreach (var s in r) { var sourceFile = new FileInfo(s); sourceFile.CopyTo(destDir + "\\" + s.Replace(sourceDir, string.Empty)); } 
+1
source

All Articles