gpt4 book ai didi

c# - 在 c# 中使用 file.move 时文件锁定...如何停止或修复此问题

转载 作者:行者123 更新时间:2023-11-30 16:34:46 24 4
gpt4 key购买 nike

代码:

        String tempFile = Path.GetTempFileName(), read = "";
TextReader pending = new StreamReader("c:\\pending.txt");
TextWriter temp = new StreamWriter(tempFile);

read = pending.ReadLine();

while ((read = pending.ReadLine()) != null)
{
temp.WriteLine(read);
}

pending.Close();
temp.Close();

File.Delete("c:\\pending.txt");
File.Move(tempFile, "c:\\pending.txt");

pending.txt 文件如果不存在则在程序启动时创建。此代码删除文件的第一行。当我调试代码时,我注意到

        File.Move(tempFile, "c:\\pending.txt");

锁定文件,我不能再写入了。

最佳答案

您应该在 using 语句中关闭您的 StreamReaderStreamWriter,如下所示:

String tempFile = Path.GetTempFileName(), read = "";
using(TextReader pending = new StreamReader("c:\\pending.txt"))
using(TextWriter temp = new StreamWriter(tempFile))
{

read = pending.ReadLine();

while ((read = pending.ReadLine()) != null)
{
temp.WriteLine(read);
}
}

File.Delete(@"c:\pending.txt");
File.Move(tempFile, @"c:\pending.txt");

关于c# - 在 c# 中使用 file.move 时文件锁定...如何停止或修复此问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2339383/

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