【发布时间】:2022-02-11 12:49:28
【问题描述】:
我正在用 c# 编程,想从闪存盘复制一个包含子文件夹的文件夹以启动。
这是我的代码:
private void copyBat()
{
try
{
string source_dir = "E:\\Debug\\VipBat";
string destination_dir = "C:\\Users\\pc\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup";
if (!System.IO.Directory.Exists(destination_dir))
{
System.IO.Directory.CreateDirectory(destination_dir);
}
// Create subdirectory structure in destination
foreach (string dir in Directory.GetDirectories(source_dir, "*", System.IO.SearchOption.AllDirectories))
{
Directory.CreateDirectory(destination_dir + dir.Substring(source_dir.Length));
}
foreach (string file_name in Directory.GetFiles(source_dir, "*.*", System.IO.SearchOption.AllDirectories))
{
File.Copy(file_name, destination_dir + file_name.Substring(source_dir.Length), true);
}
}
catch (Exception e)
{
MessageBox.Show(e.Message, "HATA", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
我收到一个错误:
找不到路径 E:\Debug\VipBat 的一部分
【问题讨论】:
-
您正在使用逐字字符串文字
@""在这种情况下您不需要转义 `\` - 只需使用一个斜杠即可。 -
@StuartLC 是对的。如果您使用逐字字符串文字,您的字符串将与您所写的完全一样。在这种情况下,它将恰好是 E:\\Debug\\VipBat\\ 这不是一个有效的路径。
-
您不应该在
E:\\Debug\\VipBat\\{0}中填写{0}吗?另一件事是,当您在字符串前面加上@前缀时,路径中不需要两个斜杠。 -
欢迎来到 Stack Overflow!请不要包含有关问题标题中使用的语言的信息,除非没有它就没有意义。标记用于此目的。
-
我没有使用@,我确信路径是正确的,但我得到了同样的错误。代码更新了...