我有一個C#winForms程序,旨在運行多個PC的USB驅動器。當我將USB驅動器連接到另一臺PC時,驅動器號更改。我怎樣才能使我的驅動器盤符在所有PC上保持一致,或使我的程序真正「便攜」。我需要驅動器盤符,因爲我有一個指向特定目錄的SQLite數據庫數據源。我也有PDF文件打開從一個特定的驅動器號的某個目錄。謝謝從USB驅動器運行程序
回答
你可以得到正在執行的程序集路徑。
string path = (new System.Uri(Assembly.GetExecutingAssembly().CodeBase)).AbsolutePath;
從那裏,你可以獲取驅動器號(根路徑):
string drive = Path.GetPathRoot(path);
如果你的文件是在同一目錄下的可執行文件,你可以得到這樣的文件路徑:
string directory = Path.GetDirectoryName((new System.Uri(Assembly.GetExecutingAssembly().CodeBase)).AbsolutePath);
string databaseFile = Path.Combine(directory, "filename.dbf");
啊...... @PatrickHofman ......再次。請注意讓我們知道這個問題的答案是什麼? – BenjaminPaul 2014-11-03 15:30:04
OP想知道如何修復驅動器號。給出的答案是「這是如何獲得可執行文件路徑」。他們不相關。 – 2014-11-03 15:33:29
@Benjamin問題在於我們可以猜測,但這完全不清楚OP要求什麼。如果它是_「我怎樣才能得到我的可執行文件所在的目錄?」,那麼這是一個已經在網站上被回答了幾十次的重複,不應該被回答,而是被標記爲這樣。 – CodeCaster 2014-11-03 15:34:01
我想你需要你的應用程序的目錄。
string path = System.IO.Directory.GetCurrentDirectory();
(如果你打電話SetCurrentDirectory()
,用這個:System.IO.Path.GetDirectoryName(new System.Uri(System.Reflection.Assembly.GetExecutingAssembly().CodeBase).LocalPath);
)
你想對你的驅動器? (驅動器的總是1號)
path.Substring(0, 2);
如果沒有一個字母,
path.Substring(0, path.IndexOf('\\') + 1);
你必須小心使用它,因爲有人可以調用SetCurrentDirectory() – 2014-11-03 15:31:03
我需要驅動器號,因爲我有一個指向某個目錄的SQLite數據庫數據源。我也有PDF文件打開從一個特定的驅動器號的某個目錄。 – Onlytito 2014-11-03 15:37:10
@ehuizar那麼你在這裏。 – joppiesaus 2014-11-03 15:38:18
- 1. 從USB閃存驅動器自動運行程序
- 2. 如何從usb驅動器運行nodejs?
- 3. 從USB閃存驅動器運行Tomcat
- 4. 從USB拇指驅動器運行glassfish
- 5. 如何讓我的vb.net應用程序僅從單個USB驅動器運行?
- 6. USB串行/ CDC功能驅動程序
- 7. Visual Studio Express可以從USB驅動器運行嗎?
- 8. 運行PHP /從USB驅動器MySQL的網站
- 9. 如何從USB閃存驅動器運行Android工作室ubuntu
- 10. 從usb驅動器(便攜式)運行python3
- 11. 通用USB大衆媒體驅動程序獲取亞行的驅動程序
- 12. 的.NET Framework 4.0的應用程序從USB驅動器
- 13. 從Linux中刪除USB主機控制器驅動程序
- 14. 在Windows中編程區分USB軟盤驅動器和USB閃存驅動器
- 15. 啓動USB驅動器來運行批處理腳本
- 16. 如何在插入USB驅動器後自動運行AppleScript?
- 17. 如何從USB運行程序?
- 18. 從USB設備運行應用程序
- 19. 如何從根驅動器運行bcp實用程序?
- 20. 從共享驅動器運行inno安裝程序
- 21. 簡單的USB驅動程序
- 22. usb cdc設備驅動程序
- 23. Silabs Usb CP210x驅動程序錯誤
- 24. 未安裝Android USB驅動程序
- 25. 尋找虛擬USB HID驅動程序
- 26. USB層次結構驅動程序
- 27. Nexus 5 USB驅動程序未找到
- 28. 更新的Android USB驅動程序
- 29. Metro應用與FTDI-USB驅動程序
- 30. Windows 10上的USB-MIDI驅動程序
爲什麼你需要擺在首位的驅動器盤符? – 2014-11-03 15:29:06
你可以嘗試使用try-catch來驅動USB驅動器。您的USB驅動器中的文件路徑不會更改。它最終會抓住正確的條件。 – 2014-11-03 15:29:08
我看不出如何強制驅動器號,因爲其他用戶可能已經將該字母映射到網絡驅動器。如何顯示違規代碼?您是否使用相對路徑可以完成的絕對路徑? – 2014-11-03 15:29:11