我有一张表格。打开表单时,它将读取文件夹中的文本文件:( Debug)\ Data \ text.txt并显示在文本框中...这真的是一个简单的表单。
我将表单设置为在启动时运行
我使用在启动文件夹中创建程序快捷方式的方法。
private void creatShortcut()
{
WshShell = new WshShellClass();
IWshRuntimeLibrary.IWshShortcut MyShortcut;
MyShortcut = (IWshRuntimeLibrary.IWshShortcut)WshShell.CreateShortcut(Environment.GetFolderPath(Environment.SpecialFolder.Startup)+"\\FaceLogin.lnk");
MyShortcut.TargetPath = Application.ExecutablePath;
MyShortcut.Description = "Face Login";
MyShortcut.IconLocation = Application.StartupPath + @"\Data\camera.ico";
MyShortcut.Save();
}
我运行表格后。它成功地在Startup文件夹中创建了一个shorcut。 我重新启动计算机进行测试,但它会抛出此异常。
无法找到路径'C:\ Users \ Key \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup \ data \ face.fac'的一部分。
这是我的代码,可以阅读face.fac
private void loadDuLieu()
{
FileStream fs = null;
try
{
if (!File.Exists(Application.StartupPath + "\\data\\face.fac"))
fs = File.Create(Application.StartupPath + "\\data\\face.fac");
else
fs = File.OpenRead(Application.StartupPath + "\\data\\face.fac");
BinaryFormatter bf = new BinaryFormatter();
if (fs != null)
lstDSMat = (List<Face>)bf.Deserialize(fs);
}
}
catch (Exception ex)
{
return;
}
finally
{
if (fs != null)
fs.Close();
}
}
这意味着我的程序在Startup文件夹中找不到“data \ face.fac”。我不明白,因为Startup文件夹只有我的程序快捷方式,没有别的。
如何在没有错误的情况下在Startup中运行我的Face Login程序来解决此问题?
答案 0 :(得分:0)
只需使用以下行为您的应用设置WorkingDirectory
:
MyShortcut.WorkingDirectory = Path.GetDirectoryName(Application.ExecutablePath);
问题是当不设置工作目录时,应用程序会查找快捷方式所在目录中的所有内容。