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