从定义位置的String变量获取引用

时间:2018-06-21 19:32:00

标签: java android file-io absolute-path

我有一个名为 paths 的String变量,该变量具有<ion-list> <ion-item *ngFor="let person of profiles"> {{person.Name}} </ion-item> </ion-list> 到目录中所有名为“ micky”的文件。 路径变量的值是-

AbsolutePath

如何仅访问micky3?我希望将micky3的路径存储在一个名为 Myvalue 的新变量中,即 Myvalue =“ sdcard / 0 / albums / micky3.jpg”

我尝试使用sdcard/0/albums/micky1.jpg sdcard/0/albums/micky2.jpg sdcard/0/albums/micky3.jpg sdcard/0/albums/micky4.jpg 访问路径,但错误提示它不是一个很明显的数组值。 paths[2];返回所有内容。 如何从字符串变量唯一访问值?还是有任何简单的方法可以做到这一点?

逻辑(我要做什么)-在目录(和子目录)中搜索名为“ myfile”的文件。如果(目录)包含“ myfile”,请获取它Log.d(paths);并将其存储在名为 myfileone 的变量中。重复此过程,直到找到所有文件并将它们存储在名为 myfiletwo myfilethree myfilefour 等的变量中。

这可以实现吗?

2 个答案:

答案 0 :(得分:2)

您可以split通过换行符String[] values = paths.split("\n")来分隔字符串。

通过这种方式,您可以像以前一样使用values[2]访问第三行。

答案 1 :(得分:0)

如果您具有文件夹路径(在本例中为“ sdcard / 0 /相册”),则可以执行以下操作:

ArrayList<String> picturePaths = new ArrayList<String>();

File pictureFolder = new File("sdcard/0/albums");
for(File f: pictureFolder.listFiles()){
    if(!f.isDirectory()){
        picturePaths.add(f.getAbsolutePath());
    }
}

这将获取图片文件夹中所有文件的绝对路径。

搜索目录(和子目录)的方式将是创建递归搜索方法。

public File searchForFile(File folderFile, String fileName){
    if(!folderFile.isDirectory()){ //If the folder to search isn't actually a folder
        return null;
    }
    for(File f: folderFile.listFiles()){ //Go over each file in the folder
        if(f.getName().equals(fileName) && !f.isDirectory()){ //If the name matches and it's not a folder
            return f; //Then this is the correct file and we can return it
        } else if(f.isDirectory()){ //Otherwise, if it's a folder
            File subFile = searchForFile(f, fileName); //Then search it for the filename
            if(subFile != null){ //and if it's found
                return subFile; //then return it
            }
        }
    }
    return null; //If we reach the end of the method, then we haven't found it.
}

您可以通过以下方式调用它:

File desiredImageFile = searchForFile(new File("the folder path"), "file name");

如果找不到,它将返回null。