0

我有一个小问题,类似于这里的这个问题

然而

代码是字面意思:

if(!File.Exists(@"C:\Windows\System32\Log.txt"))
{
    //Create file
} else
{
    //Load file
}

但是它总是进入 else 块,因为 File.Exists 总是返回 true,但文件不存在(或者我找不到它)

该文件不在指定目录中

C:\Windows\System32\Log.txt

它不在

%userprofile%\AppData\Local\VirtualStore\Log.txt

(用户配置文件是运行计划任务/控制台应用程序的用户)

只是一个简短的说明,我不打算将此文件存储在 System32 文件夹中,这是一个 C# 控制台应用程序,我正在作为 Windows 7 计划任务执行 - 并且没有意识到计划任务正在设置默认启动目录作为 C:\Windows\System32\

我对这些文件可能在哪里感到好奇,我还想清理任何浮动文件(如果它们确实存在的话)。

最后是 .NET 3.5。

4

1 回答 1

2

引用 c:\windows\system32 时存在两种可能性。您已经注意到,它可以重定向到 %userprofile%\AppData\Local\VirtualStore。另一个:如果您在 64 位系统上作为 32 位进程运行,您将自动被重定向到 c:\windows\syswow64。

检查 c:\windows\syswow64 中是否存在 log.txt。如果要引用系统上的某些位置,例如 c:\windows\system32\ 或 c:\program files\,则必须将构建配置更改为 x64 或“AnyCPU”。

于 2013-06-14T01:41:09.353 回答