永发信息网

c# 进行文件复制时出现文件正在运行

答案:3  悬赏:60  手机版
解决时间 2021-02-15 18:24
  • 提问者网友:树红树绿
  • 2021-02-15 02:35
public void copy(string pa)
{
string path,path1;
int a;
DirectoryInfo Dir = new DirectoryInfo(pa);
try
{
for (int i = 0; i < checkedListBox1.Items.Count; i++)
{
if (checkedListBox1.GetItemChecked(i) == true)
{
path = pa + checkedListBox1.Items[i].ToString().Substring(textBox1.Text.Length);
path = path.Replace(" ", "\n");
path = path.Trim();
a = path.LastIndexOf("\\");
path1 = path.Substring(0, a);
if (!Directory.Exists(path1))
{
Directory.CreateDirectory(path1);
if (!File.Exists(path))
{
File.Create(path);
}
}
else
{
if (!File.Exists(path))
{
File.Create(path);
}
}
File.Copy(checkedListBox1.Items[i].ToString(), path, true);
checkedListBox2.Items.Add(path + "\n");
}
}
}

当我执行时提示:正在运行程序,无法读取文件进行操作,应该是哪里没关闭,哪位大神告诉我下
最佳答案
  • 五星知识达人网友:行雁书
  • 2021-02-15 03:02
两处
if (!File.Exists(path))
{
File.Create(path);
}
都是多余的,直接去掉
全部回答
  • 1楼网友:街头电车
  • 2021-02-15 04:19
留联系看,或共享代码。
  • 2楼网友:旧脸谱
  • 2021-02-15 03:08
file.copy(源文件地址,目标地址, true(为true是覆盖同名文件)); 
/// <summary>
/// 从一个目录将其内容移动到另一目录
/// </summary>
/// <param name="p">源目录</param>
/// <param name="p_2">目的目录</param>
private void movefolderto(string p, string p_2)
{
 //检查是否存在目的目录
 if (!directory.exists(p_2))
 directory.createdirectory(p_2);
 //先来移动文件
 directoryinfo info = new directoryinfo(p);
 fileinfo[] files = info.getfiles();
 foreach (fileinfo file in files)
 {
file.copy(param name="p“,path.combine(p_2, file.name), true(为true是覆盖同名文件)); //复制文件
 }
 }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯