使用最后创建的文件

时间:2018-11-09 10:51:22

标签: java

我正在一个项目上,我必须使用上一个创建的文件。

例如,当我运行应用程序时,我只有file1,因此应用程序仅使用此文件,而当我创建新的file2时,我希望应用程序不再使用file1自动file2

我希望你能帮助我。

3 个答案:

答案 0 :(得分:0)

您可以尝试使用File directory = new File("<path>");方法获取文件列表。然后,您可以使用ComparatorComparable来使用Collections.sort()Arrays.sort()来排序文件,方法是使用最后修改的日期方法降序排列。最后一部分只是选择数组的顶部文件。

示例代码:

File parentDirectory = new File("some path"); 

File[] files = parentDirectory.listFiles();

Arrays.sort(files, <Your Custom Comparator>);

File latestFile = files[0]

答案 1 :(得分:0)

解压缩文件或按日期对文件进行排序。

如果可以使用更新时间,则可以使用方法lastModified直接访问File类:

  

一个长值,代表文件的最后修改时间,以自纪元(1970年1月1日格林尼治标准时间00:00:00)开始的毫秒数为单位

如果您需要创建日期,则可以通过以下方式获得它:

Path file = ...;
BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class);

// attr.creationTime() has the creation time

答案 2 :(得分:0)

您几乎没有提供有关您的应用程序的信息。此文件仅由一类使用吗?仅一个实例?是否在所有应用程序中使用它?

最后一个(在所有应用程序中使用)是最一般的情况,我将假设它。

我要处理的方法是拥有一个Singleton类来提供文件。单例是仅存在一个实例的类,并且在所有应用程序之间共享。

除了Singleton所需的属性和方法外,此类可以实现,可以具有跟踪文件的最后使用的属性“文件”。

类似的东西:

class Singleton {
  private static File lastFile; // Tracks the last file
  public static File getFile(){return lastFile;}
  public static File newFile(String path) { lastFile = new File(path); return lastFile;}
}