C#在对话框内移动文件';s路径

C#在对话框内移动文件';s路径,c#,browser,path,C#,Browser,Path,我正在努力完成这个基本操作。如果有人能编写一个工作代码就好了。假设我在桌面上找到了文件夹“AB”。文件夹AB包含子文件夹a和子文件夹B。子文件夹a包含a.txt,子文件夹B包含B.txt。我希望用户只需通过浏览器对话框选择文件夹AB(我已经这样做了),然后,当他点击复选框时,文件a.txt将进入子文件夹B,文件B.txt将进入子文件夹a。我将对简单文件夹a和B执行此操作。你还必须考虑子文件夹的可能性。 string[] filesA = System.IO.Directory.GetFiles(

我正在努力完成这个基本操作。如果有人能编写一个工作代码就好了。假设我在桌面上找到了文件夹“AB”。文件夹AB包含子文件夹a和子文件夹B。子文件夹a包含a.txt,子文件夹B包含B.txt。我希望用户只需通过浏览器对话框选择文件夹AB(我已经这样做了),然后,当他点击复选框时,文件a.txt将进入子文件夹B,文件B.txt将进入子文件夹a。

我将对简单文件夹aB执行此操作。你还必须考虑子文件夹的可能性。

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

<强>请注意:< /强>您将考虑这么多的场景,包括子文件夹、覆写、现有文件或文件夹等。

< P>我将针对简单文件夹<强> > <强> >强> 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);
}

<强>请注意:< /强>您将考虑这么多的场景,包括子文件夹、覆盖文件、现有文件或文件夹等。

假设您有A和B文件夹的文件夹路径,

 var Afolder = @"D:\AB\A";
 var Bfolder = @"D:\AB\B";
 SwapFolderFiles(Afolder, Bfolder);
将A和B的文件夹路径传递给SwapFolderFile

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

假设您拥有A和B文件夹的文件夹路径

 var Afolder = @"D:\AB\A";
 var Bfolder = @"D:\AB\B";
 SwapFolderFiles(Afolder, Bfolder);
将A和B的文件夹路径传递给SwapFolderFile

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

我想你可以参考以获得所有答案。你想复制文件还是移动文件???@Mohithrivastava他想让我们编写一个代码,以便他可以交换这些文件。i、 e.将A的内容复制到B和B的内容复制到A。您可以先获取A和B中所有文件的引用,然后执行移动操作。@Prajwal您完全正确。但是,由于OP在这里是新的,我们可以帮助他们写一个更好的问题,并向他提问,以便更好地理解。我更惊讶的是,它也获得了一次投票。我想你可以参考以获得所有答案。你想复制文件或移动文件吗???@Mohithrivastava他想让我们编写一个代码,以便他可以交换这些文件。i、 e.将A的内容复制到B和B的内容复制到A。您可以先获取A和B中所有文件的引用,然后执行移动操作。@Prajwal您完全正确。但是,由于OP在这里是新的,我们可以帮助他们写一个更好的问题,并向他提问,以便更好地理解。我更惊讶的是,它也获得了一个支持票。他的方案的一个解决办法是将文件夹a改名为B,B改名为a+1。感谢你所做的努力。@Mohithrivastava:D是的。我从来没有想到过。他的方案的一个解决办法就是将文件夹A重命名为B,将文件夹B重命名为A+1,以感谢您所做的努力。@Mohithrivastava:D是的。我从来没想过。