2016-03-03 51 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()轻松地为路径生成一个随机值。