簡體   English   中英

為什么setLastModified(time)不能用於此文件?

[英]Why doesn't setLastModified(time) work for this File?

為什么以下代碼中的文件日期沒有更改?

fLocal.location = C:\\中的現有文件

fLocal.date =在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)));

輸出:

Changed: false
Fri Feb 15 23:02:51 CET 2013
Fri Feb 15 22:49:34 CET 2013

根據我之前的評論,請遵循以下檢查:

  1. 您的代碼是否具有該文件的寫入權限?
  2. 文件是否處於打開狀態?
  3. 您目前是否在閱讀(或撰寫!)文件時使用任何其他應用程序?

這些都是可能阻止您更改文件時間的項目。

使用單行文本創建一個簡單的純文本文件,保存並關閉編輯器。 然后嘗試在您的應用程序中使用該文件。 在嘗試更改File Object的時間之前,請確保在File Object上調用exists()以確保實際擁有有效文件。

在我的本地測試你的代碼,它的工作原理...我在我的系統上更改了非常舊的文件的修改日期...

- 看看文件是否正在其他地方使用... - 如果你對文件有權限,請檢查

import java.io.File;
import java.io.IOException;
import java.util.Date;

class Test
{
    private class flocalClass
    {

        public String date;
        public String location="c:/Test/cascade.xyz";

    }
    public static void main (String[]args) throws IOException
    {
        flocalClass fLocal = new Test().new flocalClass();
        fLocal.date = Long.toString(new Date().getTime());
        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)));
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM