【发布时间】:2018-08-15 04:34:23
【问题描述】:
我有一个 C# Windows 窗体应用程序,我想将桌面上的所有文件移动到另一个目录。出于测试目的,我刚刚在桌面上创建了一个名为“Test”的文件夹,我希望将文件移动到该文件夹中。当第一个表单打开时,我让这段代码正确运行:
try
{
string dest = @"C:\Users\Billeh\Desktop\Test\";
string[] files = Directory.GetFiles(@"C:\Users\Billeh\Desktop\");
foreach (var file in files)
{
File.Move(file, dest);
}
} catch (Exception e)
{
MessageBox.Show(e.ToString());
}
但是,这似乎没有任何作用。它只是继续并打开表单,就像它被跳过一样。没有消息框弹出,我知道它没有被跳过,因为如果我让它在 try 语句中显示一个随机消息框,它就会出现。不知道怎么回事,感谢大家的帮助。
【问题讨论】:
-
dest 不能只是目标文件夹的名称。它还需要具有文件的名称。这里需要 Path.GetFilename
-
如果目标文件夹中当前没有文件怎么办? “它还需要有文件名”是指目标文件夹中的一个吗?
-
不,仅仅给出目标文件夹是不够的。 File.Move 需要移动目标的名称。实际上,此方法也用于重命名同一文件夹中的文件。