在我的应用程序的资产目录中列出所有文件和文件夹(以及子文件夹),并检查资产是文件还是文件夹

MindRoasterMir

我想检查我的Android应用程序的Assets目录中的资产是文件还是目录。

我已经尝试了Internet上任何可用的每种解决方案,包括StackOverflow。

大多数解决方案使用

File myFile = new File(path);

然后检查myFile.isDirectory();myFile.isFile();

但是,只有当我的文件和目录位于该Assets目录下以外的其他位置时,它才起作用

任何建议将不胜感激。

MindRoasterMir

这是我的问题的解决方案,我发现工作100%列出了所有目录和文件,甚至包括子目录和子目录中的文件。它还适用于多个级别。

注意:就我而言

  1. 文件名有一个。在他们中。即.htm .txt等
  2. 目录名没有任何。在他们中。

注意:关于-路径-

  1. 获取资产根文件夹中的所有文件和目录

    String path = ""; // assets

  2. 或者要在子文件夹中获取文件和目录,请使用其名称作为路径

    String path = "html"; // <<-- assets/html

    listAssetFiles2(path); // <<-- Call function where required
    //function to list files and directories
    public void listAssetFiles2 (String path){
    String [] list;
    
    try {
        list = getAssets().list(path);
        if(list.length > 0){
            for(String file : list){
                System.out.println("File path = "+file);
    
                if(file.indexOf(".") < 0) { // <<-- check if filename has a . then it is a file - hopefully directory names dont have . 
                    System.out.println("This is a folder = "+path+"/"+file);
                    if(path.equals("")) {
                        listAssetFiles2(file); // <<-- To get subdirectory files and directories list and check 
    
                    }else{
                        listAssetFiles2(path+"/"+file); // <<-- For Multiple level subdirectories
                    }
                }else{
                    System.out.println("This is a file = "+path+"/"+file);
                }
            }
    
        }else{
            System.out.println("Failed Path = "+path);
            System.out.println("Check path again.");
        }
    }catch(IOException e){
        e.printStackTrace();
    }
    

    }

谢谢

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章