【发布时间】:2012-11-08 18:58:57
【问题描述】:
我制作了一个程序,该程序使用包含站点列表的预制文本文件。 现在在某些计算机上该程序可以正常工作,但在我朋友的计算机上却不行。
我在我的 2 台 Windows 7 计算机和 1 台 xp 上检查程序,我没有任何错误。 这个程序在XP上用了一段时间,现在我朋友想把它安装在家里的windows 7电脑上,但是安装后程序找不到文件。
这是他得到的错误:
System.IO.FileNotFoundException: file not found 'C:\Users\eli\AppData\Roaming\fourmlinks.txt'.
file name: 'C:\Users\eli\AppData\Roaming\fourmlinks.txt'
问题是我将这个文件放在主程序文件夹(应用程序文件)中,但它仍然找不到它。
这是我在程序启动时用来查找文件的代码:
sring path = "";
path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\fourmlinks.txt";
System.OperatingSystem osInfo = System.Environment.OSVersion;
if (osInfo.Platform == PlatformID.Win32NT)
{
if (osInfo.Version.Major == 5 && osInfo.Version.Minor != 0)
{
//running XP
//path = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\fourmlinks.txt";
path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\fourmlinks.txt";
}
}
你可以看到,我试图确保它可以在 windows 7 和 windows xp 上运行。
注意: 我不介意改变我使用此文件的方式,甚至以这种方式丢失并尝试在操作系统(win 7 和 XP)上工作的完全不同的方式。如果你建议我新的方法,我会很高兴尝试一下。
我的问题:
- 程序怎么可能在某些计算机上运行而在某些计算机上却不行?
- 您会将文件放在程序文件夹以外的其他位置吗?
(对不起我的英语)
【问题讨论】:
-
您确定您没有修改您的用户文件夹具有特定的安全权限?
-
我认为 .NET 路径是相对的......如果文件在同一个文件夹中,你不应该需要 exe 路径..
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
-
@JohnSaunders 您修改了标题,但您仍然在其中留下了所有这些语法错误:-) Samy - 您在异常中获得的路径是否正确?该文件应该在其他地方吗?还是您的问题是文件没有在安装中部署?
-
如果您的 Visual Studio 解决方案中有 .txt 文件,请打开其属性并设置
Copy To Output = Copy Always。您应该能够使用FileInfo file = new FileInfo("filename.txt");访问该文件(如果它位于项目的根文件夹中)。我刚刚对其进行了测试,它可以在使用 clickonce 部署时在 Win 7 上运行。不知道 XP。
标签: c# windows winforms text-files