2016-11-30 26 views
0

我很苦惱這個基本的操作。如果有人可以編寫一個工作代碼,那會很好。讓我們說我在桌面上有文件夾「AB」。文件夾AB包含子文件夾A和子文件夾B .Subfolder A包含A.txt,而Subfolder B包含B.txt。我希望用戶通過瀏覽器對話框簡單地選擇文件夾AB(我已經這樣做了),然後,當他點擊複選框時,文件A.txt將會去在子文件夾B和B.txt將繼續子A.C#將文件移動到對話框的路徑中

+1

我想你可以參考https://msdn.microsoft.com/en-us/library/cc148994.aspx來獲得你所有的答案。 –

+0

你想複製文件或移動文件? –

+0

@MohitShrivastava他希望我們寫一段代碼,以便他可以交換這些文件。即複製** A **到** B **和** B **到** A **的內容。 – Prajwal

回答

2

我會簡單的文件夾一個做到這一點。你將不得不考慮子文件夾的機會。

string[] filesA = System.IO.Directory.GetFiles(AsourcePath); 
string[] filesB = System.IO.Directory.GetFiles(BsourcePath); 
foreach (string s in filesA) 
{ 
    System.IO.File.Move(s, AsourcePath); 
} 
foreach (string s in filesB) 
{ 
    System.IO.File.Move(s, BsourcePath); 
} 

請注意:你將不得不考慮這麼多的場景爲這個包括子文件夾,覆蓋現有文件或文件夾等

+2

解決方案的工作可能只是用** B **和** B **將** A **重命名爲文件夾** A **。 +1爲你所做的努力。 –

+0

@MohitShrivastava:D是的。我從來沒想過這點。 – Prajwal

0

假設你有A和B兩個文件夾路徑文件夾,

var Afolder = @"D:\AB\A"; 
var Bfolder = @"D:\AB\B"; 
SwapFolderFiles(Afolder, Bfolder); 

通作A和B二者,以SwapFolderFiles的文件夾路徑,

private static void SwapFolderFiles(string AFolder, string BFolder) 
    { 

     var AFolderfiles = System.IO.Directory.GetFiles(AFolder); 
     var BFolderfiles = System.IO.Directory.GetFiles(BFolder); 

     MoveFiles(AFolder, BFolder, AFolderfiles); 
     MoveFiles(BFolder, AFolder, BFolderfiles);    
    } 

    private static void MoveFiles(string sourceFolder, string destinationFolder, string[] folderfiles) 
    { 
     foreach (var file in folderfiles) 
     { 
      var filename = file.Substring(file.LastIndexOf("\\")+1); 
      var source = System.IO.Path.Combine(sourceFolder, filename); 
      var destination = System.IO.Path.Combine(destinationFolder, filename); 
      System.IO.File.Move(source, destination); 
     } 
    } 
相關問題