C# 写入文件最佳实践(锁定文件/覆盖)
如果我正在使用C#中的文件,检查文件是否锁定在C#中的最佳方法是什么 如果我使用File.OpenWrite(),它返回一个FileStream,这个返回CanWrite=false,这是一种检查方法吗 另外,在我的代码中只写一个位置是明智的吗?所以我指定了一个写的路径,比如“TestExample.txt”,但是如果我运行我的代码,成功地写入文件,再次运行,相同的数据将在那里。是否可以完全覆盖文件中已有的数据?或者我需要手动删除(我知道这听起来很幼稚)C# 写入文件最佳实践(锁定文件/覆盖),c#,C#,如果我正在使用C#中的文件,检查文件是否锁定在C#中的最佳方法是什么 如果我使用File.OpenWrite(),它返回一个FileStream,这个返回CanWrite=false,这是一种检查方法吗 另外,在我的代码中只写一个位置是明智的吗?所以我指定了一个写的路径,比如“TestExample.txt”,但是如果我运行我的代码,成功地写入文件,再次运行,相同的数据将在那里。是否可以完全覆盖文件中已有的数据?或者我需要手动删除(我知道这听起来很幼稚) 感谢文件。如果文件被锁定,OpenWri
感谢
文件。如果文件被锁定,OpenWrite
将抛出IOException
,因此调用该方法然后检查CanWrite
属性不是一个好方法。您将需要处理IOException
的try-catch
如果要替换文件的内容,只需在写入之前将其删除即可(如果存在):
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
}