繁体   English   中英

读取多个txt文件并将其整理出android

[英]Read multiple txt files and sort them out android

我有一个小问题。 我有一个名为“保存”的地图(在Android手机上),在该文件夹中,我有几个.txt文件。

我知道如何进入该文件夹,并且我可以读取1个txt文件(硬编码),但我希望它是动态的。

我想要这样的东西:

public void onClick(View v) {

             File root = Environment.getExternalStorageDirectory();

             save = root.toString()+"/Save/";

                if (save.startsWith("3_test")){
                    System.out.println("FOUND!");
                } else {
                    System.out.println("NOT FOUND!");
                }

        }

我得到了一个名为3_test.txt的txt文件,但他无法通过这种方式找到它,如果我对其进行硬编码,则可以找到它。

问题是我不知道如何“扫描”文件夹中的所有文件,然后对其进行“如果”检查。

希望有人可以帮助我。

我认为您的代码也无法在Java中运行:您的save变量包含root文件夹下“保存”文件夹的路径。 要获得过滤的目录列表,您可以尝试在Save文件夹的File对象上使用list()方法,并传递一个自定义java.io.FilenameFilter实现,这样它将扫描目标文件夹的全部内容,并且仅返回符合您的约束的文件的名称:

 public void onClick(View v) {

         File root = Environment.getExternalStorageDirectory();
         File saveFolder= new File(root, "Save");

         String[] files=saveFolder.list(
            new FilenameFilter() {
                public boolean accept(File dir, String name) {
                //define here you filter condition for every single file
                    return name.startsWith("3_test");

                }
            });

         if(files.length>0) {
             System.out.println("FOUND!");
         } else {
             System.out.println("NOT FOUND!");
         }
     }

save一个File而不是一个哑哑的String ,然后可以调用listFiles() ,它返回目录中File的数组。 然后,您可以遍历数组。

File save = new File(root, "Save");

for (File f : save.listFiles()) {
    // check each file
    if (f.getName().startWith("3_test.txt") {
        // whatever
    }
}

使用listFiles()得到任何目录下的所有子文件,并使用file.getName()获取文件的名称。

String folderName = Environment.getExternalStorageDirectory().getAbsolutePath();
    String folderNameStr = "Save";
    File destDir = new File(folderName+"/"+folderNameStr);
    File[] childFiles =destDir.listFiles();
    String childFileName = null;
    for(File child: childFiles){
        childFileName = child.getName();
        if(!childFileName.equals("3_test")){
            // do your task
        }
        System.out.println(childFileName);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM