2016-03-03 55 views
0
public static void CreateFolder() 
     { 
      string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); //Gets desktop folder 
      string pathTo = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + "/" + "SYS_" + Random6CharString() + "/"; //Creates random directories 
      foreach(char path in Random6CharString()) 
      { 
       System.IO.Directory.CreateDirectory(pathTo); //Method to create folders on Desktop 
      } 
     } 
     public static string Random6CharString() 
     { 
      string path = Path.GetRandomFileName(); 
      path = path.Replace(".", ""); // Remove period. 
      return path.Substring(0, 6); // Return 6 character string 
     } 

我正在製作一款遊戲,它應該將文件夾寫入用戶桌面以用作遊戲中的事件。當我想到一個點時,應該同時創建2個文件夾,它只創建一個文件夾。誰能告訴我如何一次製作多個文件夾?或者至少一個接一個地做,而不是同時做?多謝你們!將多個目錄寫入桌面c#?

+4

我不確定我想玩在我的桌面上創建文件夾的遊戲。 – juharr

+0

這不是什麼新鮮事,它只是不使用遊戲目錄文件夾,並使用更多'個人',我想你可以說。 –

+0

如果您使用[Path.Combine](https://msdn.microsoft.com/en-us/library/system.io.path.combine%28v=vs.110%29.aspx),那麼您沒有擔心路徑分隔符字符。 –

回答

1
string pathTo = ... 
foreach(char path in Random6CharString()) 
{ 
    System.IO.Directory.CreateDirectory(pathTo); //Method to create folders on Desktop 
} 

您使用pathTo,而不是你foreachpath變量。所以你試圖在同一位置創建兩個具有相同名稱的文件夾(它並不順便,CreateDirectory不能覆蓋現有的文件夾)。

+0

'path'是一個'char',所以我不建議將它傳遞給'CreateDirectory'。 – juharr

+0

沒錯,我想這是一個錯誤 –

1

看看你的代碼:

 string pathTo = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + "/" + "SYS_" + Random6CharString() + "/"; //Creates random directories 
     foreach(char path in Random6CharString()) 
     { 
      System.IO.Directory.CreateDirectory(pathTo); //Method to create folders on Desktop 
     } 

你正在創建pathTo兩次。

順便說一句,您可以通過使用System.Guid.NewGuid()輕鬆地爲路徑生成一個隨機值。