2014-09-22 53 views
0

所以我知道如何重命名多個文件甚至單個文件。我知道如何增加名字。但是我正在努力的是重命名單個文件,從一個數據庫中許多不同的名稱。一個示例是將textFile.txt重命名爲來自db ("file", "dog", "cat", "etc...")的100個不同的strings。我建立了與數據庫的連接後需要幫助,我該從哪裏去?我感覺我需要某種IEnumerable,然後像forearch迭代。只是不知道該怎麼寫。僅供參考我只是使用ConsoleApp。謝謝!從數據庫中重命名1個文件的多個不同名稱

class Program 
    { 
     public static void Main(string[] args) 
     { 
      SqlConnection Locations = new SqlConnection(ConsoleApplication1.Properties.Settings.Default.locationsDB); 

      string sourcePath = @"C:\Users\1\Desktop\a"; 
      string targetPath = @"C:\Users\1\Desktop\b"; 

      CopyDirectory(sourcePath, targetPath); 
     } 

     public static void CopyDirectory(string sourcePath, string targetPath) 
     { 
      if (!System.IO.Directory.Exists(targetPath)) 
      { 
       System.IO.Directory.CreateDirectory(targetPath); 
      } 
      if (System.IO.Directory.Exists(sourcePath)) 
      { 
       SqlConnection Locations = new SqlConnection(ConsoleApplication1.Properties.Settings.Default.locationsDB); 

       string[] files = System.IO.Directory.GetFiles(sourcePath); 

       foreach (string sourceFilePath in files) 
       { 
        for (int i = 1; i <= 4; ++i) 
        { 
         string fileExt = System.IO.Path.GetExtension(sourceFilePath); 
         string sourceFileName = System.IO.Path.GetFileName(sourceFilePath); 
         string targetFilePath = System.IO.Path.Combine(targetPath, "10000" + i + fileExt); 
         System.IO.File.Copy(sourceFilePath, targetFilePath); 
        } 
        break; 
       } 
      } 
     } 
    } 

輸出會是什麼樣子(

100001 
100002 
100003 
100004 
110001 
110002 
110003 
110004 
111001 
111002 
111003 
111004 
etc... 

回答

0

你應該擺脫的數據庫連接,並只使用一個.txt文件,然後設置string[] = File.ReadAllLines(file),然後用一個foreach循環,而不是一個循環遍歷每一行。

class Program 
    { 
     public static void Main(string[] args) 
     { 
      string sourcePath = @"C:\Users\1152092\Desktop\a"; 
      string targetPath = @"C:\Users\1152092\Desktop\c"; 

      CopyDirectory(sourcePath, targetPath); 
     } 

     public static void CopyDirectory(string sourcePath, string targetPath) 
     { 
      if (!System.IO.Directory.Exists(targetPath)) 
      { 
       System.IO.Directory.CreateDirectory(targetPath); 
      } 
      if (System.IO.Directory.Exists(sourcePath)) 
      { 
       string[] files = System.IO.Directory.GetFiles(sourcePath); 

       foreach (string sourceFilePath in files) 
       { 
        string[] entityNames = System.IO.File.ReadAllLines(@"C:\Users\1152092\Desktop\Locations.txt"); 

        foreach (string entity in entityNames) 
        { 
         string fileExt = System.IO.Path.GetExtension(sourceFilePath); 
         string sourceFileName = System.IO.Path.GetFileName(sourceFilePath); 
         string targetFilePath = System.IO.Path.Combine(targetPath, entity + fileExt); 
         System.IO.File.Copy(sourceFilePath, targetFilePath); 
        } 
       } 
      } 
     } 
    }