即使文件确实存在,File.Exists返回false

时间:2018-12-07 13:05:52

标签: c# macos file .net-core

我正在macOS上的.NET Core(版本 netcoreapp2.1 )下构建控制台应用程序。

我在方法开始时检查问题文件是否存在:

if (!File.Exists(filePath))
{
    Log.Error(string.Format("File not found: {0}", filePath));
    return null;
}

filePath包含文件的绝对路径,例如"‎⁨/Users/myusername/Desktop/recipients.csv",文件位于我的桌面上。但是当我调试时,我看到程序看不到文件。

我也尝试了以下字符串变体,但无济于事。

  1. "‎⁨//Users//myusername//Desktop//recipients.csv"
  2. @"‎⁨/Users/myusername/Desktop/recipients.csv"

这可能是一个非常简单的问题。但是现在已经花费了大约一个小时。

1 个答案:

答案 0 :(得分:1)

(作为评论会很混乱)

尝试先在终端中导航到do文件夹。喜欢:

cd桌面

然后使用“ pwd”命令查看路径。在我的系统上是:

/ Users / cetinbasoz / Desktop

我只是在其中放置了一个名为customer.csv的示例csv文件,并运行了该文件:

TS2322: Type '{ dir: Requireable<string>; }' is not assignable to type 'ValidationMap<ILayoutProps>'.
  Types of property 'dir' are incompatible.
    Type 'Requireable<string>' is not assignable to type 'Validator<"horizontal" | "vertical" | undefined>'. 

并得到了它(部分显示):

using System;
using System.IO;

namespace sandbox
{
    class Program
    {
        static void Main(string[] args)
        {
            var fileName = @"/Users/cetinBasoz/Desktop/customer.csv";
            if (File.Exists(fileName))
            {
                var content = File.ReadLines(fileName);
                foreach (var line in content)
                {
                    Console.WriteLine(line);
                }
                Console.WriteLine($"Dumped contents of {fileName}");
            }
        }
    }
}