我很苦恼这个基本的操作。如果有人可以编写一个工作代码,那会很好。让我们说我在桌面上有文件夹“AB”。文件夹AB包含子文件夹A和子文件夹B .Subfolder A包含A.txt,而Subfolder B包含B.txt。我希望用户通过浏览器对话框简单地选择文件夹AB(我已经这样做了),然后,当他点击复选框时,文件A.txt将会去在子文件夹B和B.txt将继续子A.C#将文件移动到对话框的路径中
0
A
回答
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);
}
}
我想你可以参考https://msdn.microsoft.com/en-us/library/cc148994.aspx来获得你所有的答案。 –
你想复制文件或移动文件? –
@MohitShrivastava他希望我们写一段代码,以便他可以交换这些文件。即复制** A **到** B **和** B **到** A **的内容。 – Prajwal