我遇到一个与this question here
类似的小问题无论其
代码是文字:
if(!File.Exists(@"C:\Windows\System32\Log.txt"))
{
//Create file
} else
{
//Load file
}
然而它总是进入else块,因为File.Exists总是返回true,但文件不存在(或者我找不到它)
该文件不在指定目录中
C:\ Windows \ System32下\ log.txt的
并且它不在
中%USERPROFILE%\应用程序数据\本地\ VirtualStore \ log.txt的
(userprofile是运行计划任务/控制台应用程序的用户)
请注意,我不打算将此文件存储在System32文件夹中,这是我作为Windows 7计划任务执行的C#控制台应用程序 - 并且没有意识到计划任务正在设置默认启动-in目录为C:\ Windows \ System32 \
我的好奇心让我对这些文件的位置变得更好,而且我还想清理任何浮动文件(如果它们确实存在的话)。
最后这是.NET 3.5。
答案 0 :(得分: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”。