2011-06-21 36 views
-2

我有一些文件夾/文件在多個驅動器一樣creting文件/目錄

C:\New Folder 
C:\a.txt 
D:\New Folder\New Folder 
D:\New Folder\a.txt 

現在我想建立在C盤目錄樹看起來像

C:\mytempFolder\driveC\New Folder 
C:\mytempFolder\driveC\a.txt 
C:\mytempFolder\driveD\New Folder\New Folder 
C:\mytempFolder\driveD\New Folder\a.txt 

有任何捷徑的方式來實現這個在C#?

回答

3

使用Directory.Create創建目錄:

Directory.Create("c:\mytempFolder\driveC\New Folder"); 

,並創建文件,你必須到一個文本文件寫入到該位置,就像這樣:

File.Create("D:\New Folder\a.txt").Close; 

(它返回一個FileSream,所以請記住關閉它,否則你將鎖定文件)

編輯:

好吧,我明白你的意思。這這種情況下,你需要做的是這樣的:

Loop all files in directory and its sub directories

,當你遇到一個文件或文件夾,你會那麼需要在目標文件夾中創建它(例如:C:\ mytempFolder)使用上述命令。要獲得驅動器,只需獲取路徑字符串中的第一個字符(假設它總是有一個驅動器號)。

這裏是這樣做的一個簡單的方法,但你可能需要將其調整到帳戶文件路徑不一致的:

string targetPath = @"C:\mytempFolder\"; 
string path = @"D:\New Folder\a.txt"; 
char driveLetter = path[0]; 
string filePath = path.SubString(3); 
string newFilePath = Path.Combine(targetPath, Path.Combine(String.Format("drive{0}", driveLetter.ToString()), filePath)); 
+0

我不直接知道新建文件夾的名稱。這是完整路徑的目錄。我必須提取這個沒有驅動器號的同時:\。我做了programaticaly使用字符串操作。所以我問了一種方法來獲得路徑沒有驅動器,所以我可以直接使用「c:\ mytempfolder \ driveC \ 「+ fullpathWithoutDrive – Rasel

+0

那麼,你說我已經完成了。第一個字符的路徑(C/D),然後創建目錄下mytempfolder像驅動器(C \ D)等。我只是想知道有沒有任何操作我可以這樣做,會給我沒有驅動器的相對路徑,然後直接創建所需的文件/文件夾通過追加mytempfodler /驅動器(C/D) – Rasel

+0

好吧,你沒有提到,但長話短說沒有沒有。你必須寫點東西來爲你做。儘管應該足夠簡單 – w69rdy

3
if(System.IO.Directory.Exists("c://gg")) 
     { 
      System.IO.Directory.CreateDirectory("C:\\gg//"); 
      System.IO.File.Create("C:\\gg//file.txt"); 
     } 
     else 
     { 
      Response.Write("ALREADY FOLDER EXIST"); 
     } 
+0

但如果TextBox1中包含像C完整文件名:\新建文件夾\ A.TXT – Rasel

+0

的upvote甚至沒有編譯的東西? – AntonyW

+0

然後 - System.IO.File.Create(「textbox1.text」);刪除「C:\\ gg //」; – Saurabh