Cip*_*agă 4 c# path file-copying
我已经在互联网上搜索了这个,但仍然没有找到解决方案.作为一个终极尝试,我希望有人能给我一个确切的答案.
当我尝试在文件资源管理器中将文件从目录复制到另一个文件时,我得到了这个错误.我正在尝试自己做.它有一个用于浏览目录的treeview控件和一个用于显示目录内容的listview控件.部分代码如下所示:
private void copyToolStripMenuItem_Click(object sender, EventArgs e)
{
sourceDir = treeView1.SelectedNode.FullPath;
for (int i = 0; i < listView1.SelectedItems.Count; ++i)
{
ListViewItem l = listView1.SelectedItems[i];
toBeCopied[i] = l.Text; // string[] toBeCopied, the place where I save the file names I want to save
}
}
private void pasteToolStripMenuItem_Click(object sender, EventArgs e)
{
targetDir = treeView1.SelectedNode.FullPath;
try
{
for (int i = 0; i < toBeCopied.Length; ++i)
{
File.Copy(sourceDir + "\\" + toBeCopied[i], targetDir + "\\" + toBeCopied[i], true);
refreshToolStripMenuItem_Click(sender, e);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + Environment.NewLine + ex.TargetSite);
}
}
Run Code Online (Sandbox Code Playgroud)
我收到错误的地方是File.Copy(sourceDir + "\\" + toBeCopied[i] ....
我读过它可能与设备的映射有关,但我真的不知道那是什么.
你能看一下MSDN 上的Path.Combine方法吗?这将有助于确保您的整个路径都没有多余的路径.
即 Path.Combine(sourceDir, toBeCopied[i])
如果您仍然收到错误,请告诉我上述内容的价值.
您没有显示toBeCopied创建的位置。看起来您可能已经超出了单击事件中设置的值的末尾,并尝试复制一堆名称为空的文件。
您应该将其添加到点击事件的开头
toBeCopied = new string[listView1.SelectedItems.Count];
Run Code Online (Sandbox Code Playgroud)
另外(正如其他人指出的那样)而不是
sourceDir + "\\" + toBeCopied[i]
Run Code Online (Sandbox Code Playgroud)
你应该使用
Path.Combine(sourceDir, toBeCopied[i])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27046 次 |
| 最近记录: |