检查文件是否可读的标准方法?

Ozt*_*aco 2 c# file

我知道你可以检查它是否是只读的,然后执行try-catch语句以查看它是否可读,但是是否有内置的方法来检查文件是否已被使用?

Jon*_*eet 7

使用该FileSystemInfo.Attributes属性,并检查FileAttributes.ReadOnly:

var file = new FileInfo(path);
if ((file.Attributes & FileAttributes.ReadOnly) != 0)
{
    // Do whatever you want for a read-only file
}
Run Code Online (Sandbox Code Playgroud)

请注意,这是一样的,你是否能写入文件.如果它已经在使用,那么你可能无法写入它.即使它确实表明您在调用该属性时是否可以写入它,但这并不能告诉您是否可以在之后立即写入该文件.

基本上,如果要处理尝试写入可能失败的文件,则必须使用try/catch.我会IOException特别捕捉(或者更具体的例外),而不是捕获所有异常.