2014-09-22 102 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); 
        } 
       } 
      } 
     } 
    }