Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要根据创建日期对文件进行排序_Java_Android_File_Date_Comparator - Fatal编程技术网

Java 需要根据创建日期对文件进行排序

Java 需要根据创建日期对文件进行排序,java,android,file,date,comparator,Java,Android,File,Date,Comparator,我看过其他帖子,但似乎不能很好地把它放在我的帖子里。有人能帮我吗?我可以查看并打开这些文件,但需要从最近创建的文件到最旧的文件。下面是我的代码 private List<String> fileList = new ArrayList<String>(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceStat

我看过其他帖子,但似乎不能很好地把它放在我的帖子里。有人能帮我吗?我可以查看并打开这些文件,但需要从最近创建的文件到最旧的文件。下面是我的代码

    private List<String> fileList = new ArrayList<String>();

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

   String root = Environment.getExternalStoragePublicDirectory("/MyAppFolder").
            getAbsolutePath();
    // ListDir(root);

    pdf = new File(root);
    ListDir(pdf);
   }

    void ListDir(File f) {
    File[] files = f.listFiles();
    fileList.clear();

    for (File file : files) {



        fileList.add(file.getName());

    }



    ArrayAdapter<String> directoryList = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, fileList);

    setListAdapter(directoryList);

  }

  public void onListItemClick(ListView parent, View v, int position, long id) {
    //selection.setText(fileList.indexOf(simple_list_item_1));
    OpenPdf(fileList.get(position).toString());
  }



  public void OpenPdf(String path)
  {
      File file = new File(path);
      if (file.exists()) {
          Uri p = Uri.fromFile(file);
          Intent intent = new Intent(Intent.ACTION_VIEW);
          intent.setDataAndType(p, "application/pdf");
          intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

          try {
              startActivity(intent);
          } 
          catch (ActivityNotFoundException e){
          }
      }
  }
}
private List fileList=new ArrayList();
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
字符串root=Environment.getExternalStoragePublicDirectory(“/MyAppFolder”)。
getAbsolutePath();
//ListDir(根);
pdf=新文件(根);
ListDir(pdf);
}
void ListDir(文件f){
File[]files=f.listFiles();
fileList.clear();
用于(文件:文件){
fileList.add(file.getName());
}
ArrayAdapter目录列表=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,fileList);
setListAdapter(目录列表);
}
public void onListItemClick(ListView父视图、视图v、整数位置、长id){
//selection.setText(fileList.indexOf(simple_list_item_1));
OpenPdf(fileList.get(position.toString());
}
公共void OpenPdf(字符串路径)
{
文件=新文件(路径);
if(file.exists()){
urip=Uri.fromFile(文件);
意向意向=新意向(意向.行动\视图);
intent.setDataAndType(p,“application/pdf”);
intent.setFlags(intent.FLAG\u ACTIVITY\u CLEAR\u TOP);
试一试{
星触觉(意向);
} 
捕获(ActivityNotFounde异常){
}
}
}
}

您可以签出以下内容,这显示了如何为最后一个mod时间戳执行此操作。它应该很容易适应你的情况


这里最有趣的部分是比较器。

这是我得到的错误------这一行有多个标记-类型列表的方法排序(File[],new Comparator(){})未定义-比较器是原始类型。对泛型类型Comparator的引用应该参数化。您需要编写自己的Comparator。不是很好的比较,但这是我得到的。。。。。排序(files,new Comparator(){public int compare(Object o1,Object o2){if((File)o1).lastModified()>((File)o2).lastModified(){return-1;}else if((File)o1).lastModified()<((File)o2).lastModified(){return 1;}else{return 0;}}});此副本是相关问题列表中的第一个。请稍作研究。
Comparator<File> fileDateCmp = new Comparator<File>() {
    public int compare(File f1, File f2) {
        return Long.compare(f1.lastModified(), f2.lastModified());
    }
};


File[] yourArrayOfFiles
Arrays.sort(yourArrayOfFiles, fileDateCmp);
    Comparator<File> fileDateCmp = new Comparator<File>() {
        public int compare(File f1, File f2) {
            return Long.compare(f1.lastModified(), f2.lastModified());
        }
    };

    File[] yourArrayOfFiles = File.listRoots();

    System.out.println(Arrays.toString(yourArrayOfFiles));

    Arrays.sort(yourArrayOfFiles, fileDateCmp);
    System.out.println(Arrays.toString(yourArrayOfFiles));
    for(File file : yourArrayOfFiles) {
        System.out.print(file + ": ");
        System.out.println(file.lastModified());
    }
[C:\, D:\, K:\, M:\, P:\, S:\, U:\, V:\]
[D:\, V:\, M:\, K:\, P:\, U:\, S:\, C:\]
D:\: 0
V:\: 1370008587158
M:\: 1386966108069
K:\: 1395062748515
P:\: 1396364590821
U:\: 1398716910066
S:\: 1400518034257
C:\: 1400684450266