2013-08-26 45 views
5

Tôi cần lưu giữ tất cả các đường dẫn tuyệt đối của tên tệp trong một thư mục nhất định.lấy tất cả các đường dẫn tuyệt đối của các tệp trong một thư mục nhất định

myDirectory.list() - truy xuất chuỗi [] chỉ có tên tệp (không có đường dẫn tuyệt đối).

Không muốn sử dụng đối tượng tệp vì nó tiêu thụ nhiều bộ nhớ hơn.

Điều cuối cùng - tôi có thể sử dụng bộ sưu tập apache, v.v. (nhưng không tìm thấy bất kỳ điều gì hữu ích cho điều đó).

Trả lời

0

Không myDirectory giữ thư mục của tất cả các tệp đó? Nếu vậy, chỉ cần kết hợp đường dẫn trong myDirectory với mỗi ô trong mảng trả về myDirectory.list().

+0

Cảm ơn. bạn có nghĩa là - làm anther iteration trên MyDirectory.list() và kết hợp nó với một String [] mới? có cái gì đó neater ra khỏi hộp? – user1025852

+0

Loại myDirectory là gì? –

+0

Đối tượng tập tin ..... – user1025852

8
String directory = <your_directory>; 
File[] files = new File(directory).listFiles(); 
for(File file : files){ 
    if(file.isFile()){ 
    System.out.println(file.getAbsolutePath()); 
    } 
} 

Tác phẩm này, và tôi phải nói là tôi nhầm lẫn khi bạn nói bạn không muốn sử dụng đối tượng Tệp, nhưng tôi đoán là có thể.

+0

Cảm ơn bạn đã đánh giá cao điều đó. Sử dụng đối tượng File có nhiều bộ nhớ đắt hơn sau đó chỉ cần giữ chuỗi đường dẫn. Trường hợp tôi sẽ xử lý thư mục với các tệp 100K, tôi sợ hết bộ nhớ, v.v. - Tôi đang tìm một giải pháp gọn gàng để lấy String [] của tất cả các đường dẫn tệp tuyệt đối trong một thư mục – user1025852

+0

Nếu bạn đã biết đường dẫn gốc và các đường dẫn tương đối của các tệp của bạn và bạn không sẵn sàng thực hiện một phép lặp khác để nối các chuỗi đó và bạn cũng không sẵn sàng sử dụng các đối tượng Tệp do sợ hết bộ nhớ, có lẽ bạn nên phá mảng của mình thành các mảng nhỏ hơn và xử lý riêng chúng theo các bước được cung cấp. – victorantunes

+0

cảm ơn, đánh giá cao nó – user1025852