6

次のコードのファイルの日付が変更されないのはなぜですか?

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
4

2 に答える 2

2

私のローカルでコードをテストしたところ、動作しました...システム上の非常に古いファイルの更新日を変更しました...

-ファイルが別の場所で使用されているかどうかを確認してください... -ファイルに対する権限があるかどうかを確認してください

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)));
    }
}
于 2013-02-15T23:01:20.840 に答える
2

以前の私のコメントから、次のチェックに従ってください。

  1. コードにファイルへの書き込みアクセス権がありますか?
  2. ファイルはオープン状態ですか?
  3. これを行っているときに、他のアプリケーションでファイルを現在読んでいますか (または書き込んでいますか?)。

これらはすべて、ファイルの時刻の変更を妨げる可能性のある項目です。

1 行のテキストを含む単純なプレーン テキスト ファイルを作成し、保存してエディターを閉じます。次に、アプリケーションでそのファイルを使用してみてください。実際に有効なファイルがあることを確認するために、時間を変更しようとする前に必ず電話exists()してください。File Object

于 2013-02-15T22:34:27.713 に答える