C#在对话框的路径中移动文件

时间:2016-11-30 03:24:32

标签: c# browser path

我正在努力解决这个基本操作。如果有人可以编写一个有效的代码,那将会很好。所以我要说我有文件夹" AB"在desktop.Folder AB包含子文件夹A和子文件夹B.Subfolder A包含A.txt,子文件夹B包含B.txt.I希望用户只需通过浏览器对话框选择文件夹AB(我已经这样做了)然后,当他单击复选框,文件A.txt将在子文件夹B上运行,而B.txt将在子文件夹A上运行。

2 个答案:

答案 0 :(得分:2)

我会针对简单文件夹 A B 执行此操作。您还必须考虑子文件夹的可能性。

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);
}

请注意:您可以考虑这么多场景,包括子文件夹,覆盖,现有文件或文件夹等。

答案 1 :(得分: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);
        }
    }