Tôi cần nhận đường dẫn tệp tuyệt đối bằng cách sử dụng bộ mô tả tệp được trả về bởi getFileDescriptor(). Tôi có thể làm như thế nào?Cách lấy đường dẫn tệp bằng cách sử dụng bộ mô tả tệp trên Android?
Trả lời
Trên một hệ thống chạy dưới một hạt nhân Linux, đó sẽ là tất cả hiện triển khai Android, mỗi bộ mô tả tập tin sẽ có một mục trong /proc/[processid]/fd
mà là một liên kết tượng trưng đến mục tiêu của bộ mô tả tập tin - không chỉ cho các tập tin thường xuyên , nhưng cũng cho nhiều mục tiêu có thể khác như đường ống và ổ cắm.
Dưới đây là một ví dụ một phần cho một cat > /mnt/sdcard/foo
quá trình đang chạy trên một thiết bị Android
$ ls -l /proc/3528/fd
lrwx------ shell shell 2013-06-06 10:31 0 -> /dev/pts/1
l-wx------ shell shell 2013-06-06 10:31 1 -> /mnt/sdcard/foo
lrwx------ shell shell 2013-06-06 10:31 2 -> /dev/pts/1
lrwx------ shell shell 2013-06-06 10:31 6 -> socket:[188850]
Reading liên kết tượng trưng trong Java "là trái như một bài tập cho người đọc". Trên một máy tính để bàn, có công cụ lsof
trolls thông qua các thư mục này cho tất cả các quá trình và đổ ra một danh sách các tập tin mở - tuy nhiên, điều đó sẽ không quá hữu ích trên Android, nơi việc sử dụng của mỗi người dùng ứng dụng sẽ hạn chế như trolling. Nhưng bạn vẫn có thể tra cứu fd thuộc về ứng dụng của bạn, hoặc bất kỳ quá trình nào khác đang chạy trong cùng một userid.
- 1. Trả lại luồng đầu vào từ tệp mô tả tệp bằng cách sử dụng Android DownloadManager
- 2. Cách mở lại một bộ mô tả tệp đã đóng
- 3. Cách lấy tệp mô tả trong node.js nếu bạn mở tệp bằng openSync
- 4. Cách lấy đường dẫn tuyệt đối của tệp bằng tkFileDialog?
- 5. Cách lấy đường dẫn tệp tuyệt đối bằng Python
- 6. Cách lấy đường dẫn tệp từ URI?
- 7. Lấy bộ mô tả tệp được phân bổ cao nhất
- 8. Đọc thông tin của Liên hệ bằng cách sử dụng Trình mô tả tệp trong android
- 9. cách tạo/khởi tạo đối tượng tệp bằng cách sử dụng đường dẫn tệp html5
- 10. Trình điều khiển thiết bị Linux, Có thể lấy số nhỏ bằng cách sử dụng bộ mô tả tệp không?
- 11. Lấy đường dẫn tệp của mô-đun đã nhập
- 12. Cách mở tệp trên đường dẫn tương đối bằng T4?
- 13. Cách tạo tệp mới bằng đường dẫn?
- 14. Làm cách nào để lấy tên tệp từ bộ mô tả tệp bên trong mô-đun hạt nhân?
- 15. Cách lấy đường dẫn tệp từ std :: ifstream in C++
- 16. Cách truy cập Trình mô tả tệp của tệp mở
- 17. Vợt: Cách lấy đường dẫn của tệp đang chạy?
- 18. Cách lấy tên tệp của mô-đun __main__ bằng Python?
- 19. Async chờ trên bộ mô tả tập tin bằng cách sử dụng Boost Asio
- 20. Cách lấy tệp trong đường dẫn tương đối trong C#
- 21. Bộ mô tả ổ cắm và tệp
- 22. Làm cách nào để viết ký tự dòng mới vào bộ mô tả tệp bằng Python?
- 23. Cách lấy kích thước tệp cho một đường dẫn?
- 24. Cách lấy tên/đường dẫn tệp excel trong VBA
- 25. Cách lấy đường dẫn tuyệt đối của các tệp dự án trong nhật thực bằng cách sử dụng plugin
- 26. Android: định hướng đường dẫn tệp
- 27. C++ Cách lấy tên tệp (và đường dẫn) của mô-đun thực hiện .so trong Unix
- 28. Sử dụng bộ mô tả tệp được đánh số từ Java
- 29. Cách thêm đường dẫn nhập bằng cách sử dụng tệp .pth
- 30. Lấy đường dẫn thư mục của đường dẫn tệp tuyệt đối bằng Python
Ý tưởng hay để điều tra các tệp thiết bị USB đó! Nếu bạn xây dựng một gói gỡ lỗi, bạn có thể sử dụng adb shell 'run-as your.package.name' để lấy shell làm userid của ứng dụng và sau đó trong khi nó đang chạy sử dụng ls -l từ shell đó trên các mục/proc của ứng dụng để kiểm tra các liên kết fd, thay vì phải tìm ra cách làm như vậy từ java. –