2013-07-14 30 views
-1

此代碼的工作:如何獲取和使用exe的當前目錄?

Public Sub Install() 
    progDirectory =) 
    My.Computer.FileSystem.WriteAllBytes(SelFolder & "\Resource.zip", My.Resources.Resource, False) 
    Unzip(SelFolder & "\Resource.zip", SelFolder) 
End Sub 

但這並不:

Dim progDirectory As 

Public Sub Install() 
    progDirectory = Environment.GetFolderPath(System.Environment.CurrentDirectory) 
    My.Computer.FileSystem.WriteAllBytes(SelFolder & "\Resource.zip", progDirectory, False) 
    Unzip(SelFolder & "\Resource.zip", SelFolder) 
End Sub 

的什麼,我試圖完成的基本精神,就是要找到EXE的當前目錄/路徑,然後從該目錄找到一個'Resource.zip'文件。

代碼的頂部將.zip文件寫入選擇位置(SelFolder)將其解壓縮,然後從該文件夾中刪除Resource.zip。

代碼的第二部分旨在做同樣的事情,但從目錄而不是應用程序資源使用zip,因爲我希望它們是分開的。

我得到的錯誤是:類型'字符串'的值不能被轉換爲'字節的一維數組'。在這條線:

My.Computer.FileSystem.WriteAllBytes(SelFolder & 「\ Resource.zip」,progDirectory,FALSE)

+0

有關錯誤僅僅是因爲WriteAllByes第二個參數應該是一個字節數組,而你傳遞一個字符串。其餘的,你的問題還不清楚 – Steve

回答

0

用途:File.Copy(SelFolder & "\Resource.zip", progDirectory)

相反的:My.Computer.FileSystem.WriteAllBytes(SelFolder & "\Resource.zip", progDirectory, False)

0

目前可執行文件的路徑可以通過屬性AppDomain.CurrentDomain.BaseDirectory獲得。

還有其他方法可以獲得它,但是我們在多年前發現編寫在多個平臺(包括Windows Mobile)上執行的代碼時,這是檢索信息的最安全方法。

所以,您可以在progDirectory分配更改爲:

progDirectory = AppDomain.CurrentDomain.BaseDirectory