2016-11-30 27 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); 
     } 
    } 
相关问题