如果我正在使用C#中的文件,检查文件是否在C#中被锁定的最佳方法是什么?
如果我使用File.OpenWrite(),它返回一个FileStream,并返回CanWrite = false,这是一种检查方式吗?
另外,在我的代码中只写一个位置是明智的吗?所以我指定了一个写入“TestExample.txt”的路径,但是如果我运行我的代码,成功写入文件,再次运行,那里会有相同的数据。是否可以完全覆盖文件中已有的数据?或者我需要手动删除(我知道这听起来很幼稚)。
由于
答案 0 :(得分:1)
File.OpenWrite
将抛出IOException
,因此调用该方法然后检查CanWrite
属性将不是一个好方法。您需要一个try-catch来处理IOException
。
如果要替换文件的内容,可以在写入之前删除它(如果存在):
try
{
if (File.Exists(fileName))
{
File.Delete(fileName);
}
using (FileStream stream = File.OpenWrite(fileName))
using (StreamWriter writer = new StreamWriter(stream))
{
writer.Write("your content");
}
}
catch (IOException)
{
// the file is locked
}