You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

C#中绝对路径引用失效问题:File.Exists返回false但路径实际存在

问题:File.Exists返回false但文件夹实际存在的原因及解决办法

嘿,这个问题其实是个很常见的新手误区——你用错方法啦!

File.Exists(path)的作用是检查某个具体的文件是否存在,但你传入的C:\\Users\\USER\\Documents是一个文件夹的路径,不是文件路径,所以它肯定会返回false,哪怕这个文件夹真实存在。

要验证文件夹路径是否有效,你应该改用Directory.Exists(path)方法,这才是专门用来判断文件夹存在性的API。

下面是修正后的完整代码:

public class Solution {
    private static string[] files;
    static void Main(string[] args) {
        string path = "C:\\Users\\USER\\Documents";
        // 改用Directory.Exists检查文件夹是否存在
        if (Directory.Exists(path)) {
            // 列出路径下的所有文件
            files = Directory.GetFiles(path);
            // 检查文件数量是否大于0
            if (files.Length > 0) {
                foreach (string r in files) {
                    Console.WriteLine(r);
                }
            } else {
                Console.WriteLine("This file location is empty");
            }
        } else {
            Console.WriteLine("Path does not exist");
        }
    }
}

另外补充个小提示:Directory.GetFiles()会返回目标文件夹下所有文件的路径数组,如果文件夹为空,它会返回长度为0的数组,你原来的空判断逻辑是没问题的,只要先把文件夹存在性的判断改对就可以正常运行啦。

内容的提问来源于stack exchange,提问作者TechGeek

火山引擎 最新活动