在 C# 中判断一个文件是否存在,最常用的方法是使用 System.IO.File.Exists 方法。这个方法简单高效,能直接返回一个布尔值表示指定路径的文件是否存在。
使用 File.Exists 检查文件存在性
File.Exists 是静态方法,接受一个字符串类型的文件路径作为参数,如果文件存在且程序有访问权限,返回 true;否则返回 false。即使路径格式错误或包含非法字符,它也只会返回 false 而不会抛出异常,因此非常安全。
示例代码:string filePath = @"C:\example\test.txt";<br>if (File.Exists(filePath))<br>{<br> Console.WriteLine("文件存在");<br>}<br>else<br>{<br> Console.WriteLine("文件不存在");<br>}
注意事项和常见问题
虽然 File.Exists 使用简单,但在实际开发中需要注意以下几点:
路径区分大小写情况取决于操作系统:Windows 不区分,Linux 和 macOS 默认区分 即使方法返回 true,也不能保证后续读取时文件仍然存在(可能被其他进程删除) 如果程序没有访问目标目录的权限,可能返回 false,需处理潜在的安全异常 传入 null 或空字符串会返回 false,建议提前校验路径有效性结合 FileInfo 进行更详细的判断(可选)
如果你还需要获取文件的其他信息(如大小、创建时间等),可以使用 FileInfo 类。它的 Exists 属性也能判断文件是否存在。
示例代码:FileInfo fileInfo = new FileInfo(@"C:\example\test.txt");<br>if (fileInfo.Exists)<br>{<br> Console.WriteLine($"文件大小: {fileInfo.Length} 字节");<br> Console.WriteLine($"创建时间: {fileInfo.CreationTime}");<br>}<br>else<br>{<br> Console.WriteLine("文件不存在");<br>}
基本上就这些。对于大多数场景,直接使用 File.Exists 就足够了,简洁明了。只有在需要进一步操作文件属性时,才考虑使用 FileInfo。注意路径正确性和权限问题,避免误判。不复杂但容易忽略细节。
