2010-11-04 18 views
18

Tôi đang sử dụng này để xem nếu một tập tin đã tồn tại và nhận được dấu thời gian của nó:Bắt một file Modified Date Last

File file = new File(getResources().getString(R.string.file_name)); 

if (file.exists()) { 
    Date lastModified = new Date(file.lastModified()); 
} 

Mặc dù tôi có thể thấy rằng tập tin này không thực sự tồn tại bằng cách sử dụng Context.fileList (), các mã trên luôn nói rằng nó không.

Làm cách nào để có được ngày sửa đổi cuối cùng của tệp?

+1

Sự cố của bạn ở đây là gì? File.exists() đó không thành công? – EboMike

+0

file.exists() đang trả về false. Bất cứ khi nào tôi gọi file.lastModified() nó trả về số không. Chuỗi tên tệp chỉ là một tên như "myfile.txt" mà không có bất kỳ thông tin đường dẫn nào. – Tom

Trả lời

11

Tôi coi đó là sự cố của bạn là file.exists() không thành công, vấn đề với ngày sửa đổi không liên quan gì đến nó.

Tôi muốn mạo hiểm rằng đường dẫn bạn đang sử dụng là cục bộ cho ứng dụng của bạn? Bạn sẽ cần phải sử dụng đường dẫn tuyệt đối khi sử dụng File.

+2

Nó thực sự là một vấn đề đường dẫn. Giải pháp là sử dụng Context.getFileStreamPath (fileName) để lấy đối tượng File. Sau đó, các phương thức file.exists() và file.lastModified() hoạt động tốt. Cảm ơn vì tiền hỗ trợ. – Tom

+1

Rất vui được trợ giúp! Điều này dẫn đường là một cạm bẫy phổ biến. – EboMike

1

Sử dụng tính năng này cho đường dẫn

nếu u gửi đường dẫn không hợp lệ thì bạn sẽ luôn nhận được 0 hoặc năm 1970! (vì Google đặt Ngày bắt đầu cho ngày đó :))

File file = new File(this.getFilesDir().getAbsolutePath() + "/file1.jpg"); 
+8

Nó thực sự không phải là "Google" đã thiết lập ngày đó mà đúng hơn là bản chất của cách các dấu thời gian unix được tạo ra - xem http://en.wikipedia.org/wiki/Unix_time – PureSpider