Tại sao ngày của tệp trong mã sau không bị thay đổi?Tại sao không setLastModified (time) làm việc cho Tệp này?
fLocal.location
= file hiện có trong C: \
fLocal.date
= Ngày thiết lập tại Long
boolean x = new File(fLocal.location).setLastModified(Long.parseLong(fLocal.date));
System.out.println("Changed: " + x);
System.out.println(new Date(new File(fLocal.location).lastModified()));
System.out.println(new Date(Long.parseLong(fLocal.date)));
Output:
Changed: false
Fri Feb 15 23:02:51 CET 2013
Fri Feb 15 22:49:34 CET 2013
Mã của bạn có quyền ghi vào tệp không? Tệp có ở trạng thái mở không? – JoshDM
Bạn hiện đang đọc tệp với bất kỳ ứng dụng nào khác tại thời điểm bạn đang thực hiện việc này? Đây là tất cả các mục có thể ngăn bạn thay đổi thời gian của tệp. Tạo một tệp văn bản thuần tuý đơn giản với một dòng văn bản, lưu nó và đóng trình soạn thảo. Sau đó thử sử dụng tập tin đó. Hãy chắc chắn rằng bạn gọi 'exist()' trên đối tượng File của bạn trước khi bạn cố gắng thay đổi nó để đảm bảo bạn thực sự có một tập tin hợp lệ. – JoshDM
Đó là một ý tưởng tồi để làm việc trực tiếp dưới C: \ vì a) trong các Phiên bản Windows gần đây hơn mà bạn không cần phải chạm/thay đổi tệp và thư mục ở đó b) bạn có thể tình cờ ghi đè hoặc xóa tệp OS (như cấu hình khởi động) tập tin). – Ingo