Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果文件不';不存在_C#_.net_Windows_Windows Vista_Filesystems - Fatal编程技术网

C# 如果文件不';不存在

C# 如果文件不';不存在,c#,.net,windows,windows-vista,filesystems,C#,.net,Windows,Windows Vista,Filesystems,我正在开发一个应用程序,它将文件保存在Path.GetDirectoryName(FilePath)中,其中FilePath=Application.ExecutablePath包含一些有关许可的信息。如果我从VS运行程序,它可以正常工作,但是如果我制作了一个安装程序,安装并运行它,程序会认为文件已经存在。我将程序更改为在消息框中显示我的FilePath以及File.Exists(FilePath)是否返回true或false。所以我查看了那个路径,启用了显示隐藏文件和系统文件的功能,F5执行了

我正在开发一个应用程序,它将文件保存在
Path.GetDirectoryName(FilePath)
中,其中
FilePath=Application.ExecutablePath
包含一些有关许可的信息。如果我从VS运行程序,它可以正常工作,但是如果我制作了一个安装程序,安装并运行它,程序会认为文件已经存在。我将程序更改为在消息框中显示我的
FilePath
以及
File.Exists(FilePath)
是否返回
true
false
。所以我查看了那个路径,启用了显示隐藏文件和系统文件的功能,F5执行了几次,什么都没有。文件不存在,但
file.Exists(FilePath)
返回true。知道为什么会发生这种感冒吗?我该如何解决

我使用的是Windows Vista、Visual Studio 2010、C#,并使用VS的安装项目创建了我的安装程序

编辑:我的路径是:C:\Program Files(x86)\he\License.xml

这是我代码的一部分:

        MessageBox.Show("LicenseFileName: " + LicenseFileName); // LicenseFileName: C:\Program Files (x86)\Helium\License.xml
        System.Diagnostics.Process.Start(LicenseFileName);      // Nothing happens
        MessageBox.Show("File.Exists(LicenseFileName): " + File.Exists(LicenseFileName)); // File.Exists(LicenseFileName): true

忘了说我之前已经安装了应用程序,所以文件以前是存在的。我已使用“控制面板”卸载。

如果要安装到系统文件夹,则可能是Windows文件虚拟化启动并创建了文件的每个用户副本。因此,您的文件可能位于%userprofile%\AppData\Local\VirtualStore文件夹中的某个位置

它是绝对路径还是相对路径?显示实际路径也可能有帮助。请尝试通过运行打开文件。它可能是超级隐藏的。另外,我建议不要使用WindowsVista,你是说
FilePath=Application.ExecutablePath;存在(文件路径)?一个更完整的代码示例在这里会很有帮助。是的,我只是随便说说。那台电脑上是否启用了UAC?也许它不允许您的应用程序访问程序文件。尝试提升权限。(ContextMenu->以管理员身份运行)是的,前几天我在跟踪那个之前浪费了整整一天,我想我也应该这样问:)