直接用 File.Exists(路径)
就能判断文件是否存在,返回 true
或 false
。 它是 .NET 中最常用、最简洁的方式,无需额外引用,属于
System.IO命名空间。
基本用法:传入完整文件路径
必须提供**绝对路径**或**相对于当前工作目录的相对路径**。相对路径容易出错,推荐优先用绝对路径:
✅ 正确(推荐):string path = @"C:\Temp\config.txt"; bool exists = File.Exists(path);❌ 风险(不推荐):
File.Exists("data.json") —— 若程序工作目录不是预期位置,会返回 false即使文件存在
注意路径有效性与权限问题
File.Exists只检查“路径是否指向一个存在的普通文件”,它不会抛出异常,但有几点要留心: 如果路径格式非法(如含
| ? *),方法直接返回
false,不报错 若路径指向的是目录(而非文件),也返回
false即使有访问权限限制(如无读取权限),只要文件物理存在,仍返回
true;但若系统因权限无法确认(极少见),也可能返回
false
配合 Path.Combine 构建安全路径
避免手动拼接字符串出错,尤其跨平台时路径分隔符不同:
string folder = @"C:\MyApp\Data";
string fileName = "log.txt";
string fullPath = Path.Combine(folder, fileName); // 自动处理 \ 或 /
if (File.Exists(fullPath)) { /* 文件存在 */ }
替代方案?Directory.Exists 和 try-catch 不适合判断文件
别混淆用途:
Directory.Exists()判断的是**文件夹**,不是文件 用
try/catch打开文件再捕获
FileNotFoundException是重操作,效率低且不必要
FileInfo.Exists可以用,但需实例化对象,比
File.Exists略重,适合后续还要获取文件属性的场景
基本上就这些。记住:路径要对、别混用目录判断、优先组合路径再检查——
File.Exists本身很简单,关键在用得稳。
