C# 写入文件最佳实践(锁定文件/覆盖)

C# 写入文件最佳实践(锁定文件/覆盖),c#,C#,如果我正在使用C#中的文件,检查文件是否锁定在C#中的最佳方法是什么 如果我使用File.OpenWrite(),它返回一个FileStream,这个返回CanWrite=false,这是一种检查方法吗 另外,在我的代码中只写一个位置是明智的吗?所以我指定了一个写的路径,比如“TestExample.txt”,但是如果我运行我的代码,成功地写入文件,再次运行,相同的数据将在那里。是否可以完全覆盖文件中已有的数据?或者我需要手动删除(我知道这听起来很幼稚) 感谢文件。如果文件被锁定,OpenWri

如果我正在使用C#中的文件,检查文件是否锁定在C#中的最佳方法是什么

如果我使用File.OpenWrite(),它返回一个FileStream,这个返回CanWrite=false,这是一种检查方法吗

另外,在我的代码中只写一个位置是明智的吗?所以我指定了一个写的路径,比如“TestExample.txt”,但是如果我运行我的代码,成功地写入文件,再次运行,相同的数据将在那里。是否可以完全覆盖文件中已有的数据?或者我需要手动删除(我知道这听起来很幼稚)


感谢
文件。如果文件被锁定,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
}