program tip

Android : 파일 생성 날짜를 얻는 방법은 무엇입니까?

radiobox 2020. 11. 19. 08:01
반응형

Android : 파일 생성 날짜를 얻는 방법은 무엇입니까?


이것은 내 코드입니다.

File TempFiles = new File(Tempfilepath);
if (TempFiles.exists()) {
    String[] child = TempFiles.list();
    for (int i = 0; i < child.length; i++) {
        Log.i("File: " + child[i] + " creation date ?");
        // how to get file creation date..?
    }
}

파일 생성 날짜는 사용할 수 없지만 마지막 수정 날짜 는 확인할 수 있습니다 .

File file = new File(filePath);
Date lastModDate = new Date(file.lastModified());
Log.i("File last modified @ : "+ lastModDate.toString());

방법은 다음과 같습니다.

// Used to examplify deletion of files more than 1 month old
// Note the L that tells the compiler to interpret the number as a Long
final int MAXFILEAGE = 2678400000L; // 1 month in milliseconds

// Get file handle to the directory. In this case the application files dir
File dir = new File(getFilesDir().toString());

// Obtain list of files in the directory. 
// listFiles() returns a list of File objects to each file found.
File[] files = dir.listFiles();

// Loop through all files
for (File f : files ) {

   // Get the last modified date. Milliseconds since 1970
   Long lastmodified = f.lastModified();

   // Do stuff here to deal with the file.. 
   // For instance delete files older than 1 month
   if(lastmodified+MAXFILEAGE<System.currentTimeMillis()) {
      f.delete();
   }
}

파일 생성 날짜는 Java File클래스에 의해 노출 된 사용 가능한 데이터가 아닙니다 . 하고있는 일을 재고하고 계획을 변경하여 필요하지 않게하는 것이 좋습니다.


다른 방법이 있습니다. 파일을 처음 열 때 폴더를 수정하기 전에 lastModified 날짜를 저장하십시오.

long createdDate =new File(filePath).lastModified();

그런 다음 파일을 닫으면

File file =new File(filePath);
file.setLastModified(createdDate);

파일이 생성 된 후이 작업을 수행 한 경우에는 createdDate가 항상 lastModified 날짜로 지정됩니다.


API 레벨 26부터 다음을 수행 할 수 있습니다.

File file = ...;
BasicFileAttributes attr = Files.readAttributes(file.toPath(), BasicFileAttributes.class);
long createdAt = attr.creationTime().toMillis();

참고URL : https://stackoverflow.com/questions/2389225/android-how-to-get-a-files-creation-date

반응형