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->以管理员身份运行)是的,前几天我在跟踪那个之前浪费了整整一天,我想我也应该这样问:)