在c#中使用WriteAllText时,另一个进程正在使用文件



如果指定位置,我将检查文件是否存在,如果存在,我将用&39.为此,我使用WriteAllText方法。据我所知,WriteAllText将用于Create file and write the text and close it, target file is already exists, it will be overwritten

我不知道为什么我在使用时得到System.IOException

var file = AppDomain.CurrentDomain.BaseDirectory + "test";
if (Directory.Exists(file))
{
    string text = File.ReadAllText(file + "\test.txt");
    text = text.Replace("'", "&#39");
    File.WriteAllText(file + "\test.txt", text);
}

注意:我在Application_BeginRequest方法中使用此方法。

建议我如何避免此异常?

使用下面的代码

            var file = AppDomain.CurrentDomain.BaseDirectory + "test.txt";
            if (File.Exists(file))
            {
                string text = File.ReadAllText(file);
                text = text.Replace("'", "&#39");
                File.WriteAllText(file, text);
            }

希望这将解决您的问题

首先,您在使用时询问目录的存在

Directory.Exists(file)

为了检查文件的存在,您需要使用

File.Exists(file)

第二,您正试图从文件中读取AllText,方法是将与文件名连接的文件作为参数再次传递。所以您传递的文件名实际上是:

AppDomain.CurrentDomain.BaseDirectory + "test.txt" + "\test.txt";

第三,WriteAllText和ReadAllText的评论相同。

网上有很多例子可以学习如何从文件中读写,例如:

从文本文件读取-MSDN
写入文本文件-MSDN

相关内容

  • 没有找到相关文章

最新更新