我正在處理將存儲在USB設備上的文件導入到數據庫的方法。 我已經在Mac和Windows上完成了它,但是我不知道如何在Linux/Ubuntu下使用java應用程序時獲取USB設備的路徑。 有沒有辦法找到路徑?如何使用java獲取USB設備在linux/ubuntu上的絕對路徑
2
A
回答
0
我不認爲有什麼方法可以保證在所有Linux系統上都能正常工作。我使用了幾種方法,取得了不同程度的成功。
不需要外部實用程序的方法是枚舉並解析/dev/disk
,/proc/mounts
和/sys/bus/usb
中的僞文件,並構建保存存儲的USB設備的表示形式。可能有不止一個,所以你可能仍然需要做出一些猜測,或者爲用戶提供一個選擇。這是一個非常乏味的方法,但我認爲它是最一般的方法。正如其他人所建議的,您可以只看/media
,/run/media
,但這隻適用於某些Linux安裝,並且僅在啓用了這種自動安裝形式時才適用。
一個不繁瑣的方法是從您的程序調用實用程序udisksctl
。我認爲這個實用程序幾乎適用於所有Linux版本,但並不總是默認安裝。該實用程序的輸出必須被解析,但直接使用內核pfeofiles的麻煩較少。
要獲取磁盤設備列表,請執行udisksctl status
。這會告訴你型號名稱,它通常包含文本「USB」和塊設備(例如/ dev/sdb)。然後,您可以執行udisksctl info -b /dev/sdb
並查找開始「掛載點」的行。如果設備未掛載,則可以根據需要執行udisksctl mount...
。還有一堆udisksctl可以做的其他有用的東西 - 請參閱其手冊頁。
在Java中,您可以使用Runtime.exec()
來運行udisksctl
,但用戶可能通過檢查是否存在/usr/bin/udisksctl
來檢查它是否安裝在第一位。
相關問題
- 1. 從USB設備的設備路徑獲取卷名稱
- 2. 如何用javascript_include_tag獲取絕對路徑?
- 3. 獲取java中url的絕對路徑
- 4. Java:獲取項目的絕對路徑
- 5. 如何獲取gulpfile的絕對路徑?
- 6. Java - 獲取服務器絕對路徑
- 7. 在Linux上使用libhid確定USB HID設備的HID路徑
- 8. 如何從Java中的絕對http路徑獲取相對路徑
- 9. 如何獲取圖像絕對路徑?
- 10. WIN32_FIND_DATA - 獲取絕對路徑
- 11. 如何根據兩個絕對路徑獲取相對路徑?
- 12. 文件上傳:獲取絕對路徑
- 13. 從node.js中的VID和PID獲取USB設備的/ dev路徑
- 14. 如何在Android中使用createChooser獲取音頻絕對路徑
- 15. 在makefile中,如何獲取從一個絕對路徑到另一個絕對路徑的相對路徑?
- 16. 如何使用FileChooser的路徑獲取圖像的絕對路徑?
- 17. 如何在Linux中使用libusb獲取設備路徑
- 18. 如何在Xorg中使用Xlib獲取輸入設備路徑?
- 19. 在Django中上傳後如何獲取文件絕對路徑?
- 20. 如何使用Delphi獲取INI文件的絕對路徑?
- 21. 如何使用tkFileDialog獲取文件的絕對路徑?
- 22. 如何使用Repl Xcode 7?獲取絕對路徑的錯誤
- 23. 如何使用ALAssets庫獲取視頻的絕對路徑?
- 24. 獲取對象的絕對路徑
- 25. 如何從HDFS路徑中獲取絕對路徑
- 26. Windows中USB設備的路徑
- 27. 如何使用JavaScript或...獲取文件絕對路徑?
- 28. 用Perl獲取絕對路徑
- 29. 在javascript中獲取絕對路徑
- 30. 在Python中獲取絕對路徑
遵循路徑'/ media/...' –
至少,Fedora系統不會在'/ media'上自動掛載。假設所有的Linux系統都以相同的方式處理可移動介質是有問題的。不幸的是,他們不這樣做。 –