从 'Computer' 访问 USB 驱动器
Accessing USB Drives from 'Computer'
我正在尝试以编程方式将文件从桌面复制到 USB 驱动器。但是,当尝试 运行 此代码时,我收到一条错误消息,指出找不到部分路径:
if (dr == DialogResult.Yes)
{
string selected = comboBox1.GetItemText(comboBox1.SelectedItem);
string filePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string filefolder = @"\UpgradeFiles";
string fileLocation = filePath + filefolder;
if (!Directory.Exists(fileLocation))
{
Directory.CreateDirectory(fileLocation);
}
else if (Directory.Exists(fileLocation))
{
DirectoryInfo di = new DirectoryInfo(fileLocation);
FileInfo[] fileList = di.GetFiles();
foreach (FileInfo file in fileList)
{
string DrivePath = Environment.GetFolderPath(
Environment.SpecialFolder.MyComputer);
string CopyToDrive = comboBox1.Text;
file.CopyTo(DrivePath + CopyToDrive, false);
}
}
}
组合框包含所选的驱动器号。我在尝试添加 "computer\driveletter" 时是不是处理错了?
您的 File.CopyTo(DrivePath + CopyToDrive, false) 应该是:
File.CopyTo(CopyToDrive + File.Name, false);
但有一点语法糖,比如使用 Path.Combine 或 String.Format 而不是仅仅使用“+”。
问题是 File.CopyTo 需要结束位置的目录和文件名,而您只是提供目录。这可以在此处方法调用的文档中看到:https://msdn.microsoft.com/en-us/library/f0e105zt(v=vs.110).aspx
我正在尝试以编程方式将文件从桌面复制到 USB 驱动器。但是,当尝试 运行 此代码时,我收到一条错误消息,指出找不到部分路径:
if (dr == DialogResult.Yes)
{
string selected = comboBox1.GetItemText(comboBox1.SelectedItem);
string filePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string filefolder = @"\UpgradeFiles";
string fileLocation = filePath + filefolder;
if (!Directory.Exists(fileLocation))
{
Directory.CreateDirectory(fileLocation);
}
else if (Directory.Exists(fileLocation))
{
DirectoryInfo di = new DirectoryInfo(fileLocation);
FileInfo[] fileList = di.GetFiles();
foreach (FileInfo file in fileList)
{
string DrivePath = Environment.GetFolderPath(
Environment.SpecialFolder.MyComputer);
string CopyToDrive = comboBox1.Text;
file.CopyTo(DrivePath + CopyToDrive, false);
}
}
}
组合框包含所选的驱动器号。我在尝试添加 "computer\driveletter" 时是不是处理错了?
您的 File.CopyTo(DrivePath + CopyToDrive, false) 应该是:
File.CopyTo(CopyToDrive + File.Name, false);
但有一点语法糖,比如使用 Path.Combine 或 String.Format 而不是仅仅使用“+”。
问题是 File.CopyTo 需要结束位置的目录和文件名,而您只是提供目录。这可以在此处方法调用的文档中看到:https://msdn.microsoft.com/en-us/library/f0e105zt(v=vs.110).aspx