2009-01-27 26 views
8

Vấn đề của tôi là ::Làm thế nào để trích xuất tên tập tin từ một tập tin URI và tạo một liên kết cho cùng?

Từ một chuỗi như "/usr/folder1/folder2/filename.ext"

  • tôi phải giải nén ra tên file chỉ để trưng bày (filename.ext chỉ).
    • Câu hỏi của tôi là tôi nên làm như thế nào? Tách vào "/" và lấy nguyên tố cuối cùng là một cách nhưng không có mùi thơm với tôi.
  • Tôi phải tạo liên kết sử dụng URI của tệp làm đích. Đó sẽ là nội dung tương tự như tệp: //domain.com/usr/folder1/folder2/filename.ext

Tôi đã xem URI và giao diện URL trong java.net nhưng không thể tìm thấy gì hữu ích ở đó.

Ngoài ra, trong một số trường hợp, đường dẫn tệp của tôi có thể có COMMA, SPACE vv (thư mục Windows). Vì vậy, hãy ghi nhớ điều đó khi đưa ra bất kỳ ý tưởng nào.

+0

Giải pháp được đề xuất không phổ biến. hãy thử http://stackoverflow.com/a/10944586/715269 để thay thế. – Gangnus

Trả lời

15

Bạn có thể thử một cái gì đó như thế này:

File file = new File("/usr/folder1/folder2/filename.ext"); 
System.out.println(file.getName()); 

Tôi không chắc liệu điều này sẽ có tác dụng nếu các tập tin không tồn tại, nhưng vừa thử nó và nó dường như làm việc OK.

+0

thx, tôi đã lười biếng để đưa ra mẫu mã. ;) – Nicolas

+0

Đối số mà tôi cần để chuyển tới hàm tạo 'File' là' Uri', bị từ chối như một đối số không hợp lệ. Nó đủ đơn giản để biến Uri thành một chuỗi: 'File file = new File (mImageUri.toString());' –

4

CommonsIO cung cấp giải pháp cho sự cố này: FilenameUtils.getName(), trả về tên tệp + tiện ích mở rộng.

String filename = FilenameUtils.getName("/usr/folder1/folder2/filename.ext"); 
System.out.println(filename); // Returns "filename.ext" 
Các vấn đề liên quan