gpt4 book ai didi

c# - 复制文件时如何防止此 System.IO.IOException?

转载 作者:太空宇宙 更新时间:2023-11-03 17:23:41 24 4
gpt4 key购买 nike

当我运行以下代码来测试复制目录时,我在调用 fileInfo.CopyTo 方法时收到 System.IO.IOException。错误消息是:“该进程无法访问文件 'C:\CopyDirectoryTest1\temp.txt',因为它正被另一个进程使用。”

似乎在 file1 ("C:\CopyDirectoryTest1\temp.txt") 上有一个锁,它是在发生错误的几行上方创建的,但如果是这样,我不知道如何释放它。有什么想法吗?

using System;
using System.IO;

namespace TempConsoleApp
{
class Program
{
static void Main(string[] args)
{
string folder1 = @"C:\CopyDirectoryTest1";
string folder2 = @"C:\CopyDirectoryTest2";
string file1 = Path.Combine(folder1, "temp.txt");

if (Directory.Exists(folder1))
Directory.Delete(folder1, true);
if (Directory.Exists(folder2))
Directory.Delete(folder2, true);

Directory.CreateDirectory(folder1);
Directory.CreateDirectory(folder2);
File.Create(file1);

DirectoryInfo folder1Info = new DirectoryInfo(folder1);
DirectoryInfo folder2Info = new DirectoryInfo(folder2);

foreach (FileInfo fileInfo in folder1Info.GetFiles())
{
string fileName = fileInfo.Name;
string targetFilePath = Path.Combine(folder2Info.FullName, fileName);
fileInfo.CopyTo(targetFilePath, true);
}
}
}
}

最佳答案

File.Create返回一个打开的 FileStream - 您需要关闭该流。

只是

using (File.Create(file1)) {}

应该可以解决问题。

关于c# - 复制文件时如何防止此 System.IO.IOException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/267830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com