C#怎么判断文件是否存在 C# File.Exists使用方法

来源:这里教程网 时间:2026-02-21 17:35:41 作者:

直接用

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
本身很简单,关键在用得稳。

相关推荐