File.Exists检测问题

Gel*_*ion 0 .net c#

我写了一个程序的bizzare问题,其中命令File.Exists()并不总是在与可执行文件相同的目录中检测到相同的文件.

我有类似的东西:

    if (File.Exists("TextFile1.txt"))
        {
        //do some stuff
        }
Run Code Online (Sandbox Code Playgroud)

但奇怪的是,如果我在cmd提示符下运行此可执行文件,它不会检测到该文件.但是,如果我通过另一个进程启动此可执行文件,它将检测文件精细.

关于这个bizzare问题的任何想法?谢谢.

Dar*_*rov 13

这是可执行文件工作目录的相对文件路径.从命令提示符运行应用程序时,工作目录将设置为可执行文件所在的目录.当您通过另一个进程(Process.Start)运行此可执行文件时,工作目录是主进程的工作目录.您可以在运行进程之前修改工作目录,也可以使用绝对文件路径.

另外要记住的是,如果您运行代码的帐户对该文件夹没有足够的权限,File.Exists可能会返回false.

如果调用者具有所需权限并且path包含现有文件的名称,则为true;否则为false.否则,错误.如果path为null,无效路径或零长度字符串,则此方法也返回false.如果调用者没有足够的权限来读取指定的文件,则不会抛出异常,并且无论路径是否存在,该方法都返回false.

  • 不一定,工作目录可以另外设置. (3认同)