フォームがあります。フォームを開くと、フォルダー (Debug)\Data\text.txt 内のテキスト ファイルが読み取られ、テキスト ボックスに表示されます。これは本当に単純なフォームです。
起動時にフォームを実行するように設定した後
Startup Folder にプログラムのショートカットを作成する方法を使用します。
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フォルダにショートカットが作成されました。テストのためにコンピューターを再起動しましたが、この例外がスローされます。
パス '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 フォルダーにはプログラムのショートカットしかなく、他に何もないため、わかりません。
この問題を解決して、Face Login プログラムを Startup でエラーなしで実行するにはどうすればよいですか?