2013-03-28 33 views
1

我有一個表單。當窗體打開時,它將讀取文件夾中的文本文件:(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(); 
     } 
    } 

這意味着我的程序無法找到「數據\ face.fac」在啓動文件夾中。我不明白,因爲啓動文件夾只有我的程序快捷方式,沒有別的。

我該如何解決這個問題來運行我的臉部登錄程序在啓動時沒有這個錯誤?

+0

當您通過瀏覽器導航到該文件時,該文件是否存在? –

+0

該文件的真正路徑是什麼? –

回答

0

只需用這條線設置WorkingDirectory爲您的應用程序:

MyShortcut.WorkingDirectory = Path.GetDirectoryName(Application.ExecutablePath); 

的問題是,當設置工作目錄中的應用程序查找在快捷方式中存在的目錄一切

相關問題