Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.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 - Fatal编程技术网

Java 从存储器中检索以字符串开头的文件

Java 从存储器中检索以字符串开头的文件,java,android,Java,Android,我在尝试从Android中的文件夹检索单个图像文件时遇到问题 文件名为“00070 bipack GV ZZZ.jpg”。我的代码: File dirRoot = rootMicroSd(context); if (dirRoot == null) return ""; File imgDir = new File(dirRoot, DefPrefsUtil.getDirImg(context) + "/"); String referenciaCeros = "

我在尝试从Android中的文件夹检索单个图像文件时遇到问题

文件名为“00070 bipack GV ZZZ.jpg”。我的代码:

    File dirRoot = rootMicroSd(context);
    if (dirRoot == null) return "";
    File imgDir = new File(dirRoot, DefPrefsUtil.getDirImg(context) + "/");
    String referenciaCeros = "";
    for (int i = String.valueOf(referencia).length(); i < 5; i++) {
        referenciaCeros += "0";
    }
    referenciaCeros += String.valueOf(referencia); //00070 e.g.
File dirRoot=rootMicroSd(上下文);
如果(dirRoot==null)返回“”;
File imgDir=新文件(dirRoot,DefPrefsUtil.getDirImg(context)+“/”;
字符串referencearos=“”;
for(int i=String.valueOf(referencea.length();i<5;i++){
Referencearos+=“0”;
}
referencearos+=String.valueOf(referenceia)//00070例如。

现在,对于包含“00070”的字符串,我的下一步(我认为是最后一步)是在imgDir中检索以SD卡根路径中的该字符串开头的文件。

我通过应用过滤器设法找出:

    File dirRoot = rootMicroSd(context);
    if (dirRoot == null) return "";
    File directorio = new File(dirRoot, DefPrefsUtil.getDirImg(context) + "/");
    String referenciaCeros = "";
    for (int i = String.valueOf(referencia).length(); i < 5; i++) {
        referenciaCeros += "0";
    }
    referenciaCeros += String.valueOf(referencia);
    final String finalReferenciaCeros = referenciaCeros;
    File[] allFiles = directorio.listFiles(new FilenameFilter() {
        public boolean accept(File dir, String name) {
            boolean valido = (name.startsWith(finalReferenciaCeros) && (name.endsWith(".jpg") || name.endsWith(".JPG")));
            return valido;
        }
    });
    if (allFiles.length == 0) return "";
    return allFiles[0].getAbsolutePath();
File dirRoot=rootMicroSd(上下文);
如果(dirRoot==null)返回“”;
File directorio=新文件(dirRoot,DefPrefsUtil.getDirImg(context)+“/”;
字符串referencearos=“”;
for(int i=String.valueOf(referencea.length();i<5;i++){
Referencearos+=“0”;
}
referencearos+=String.valueOf(referenceia);
最终字符串finalReferenciaCeros=referenciaCeros;
File[]allFiles=directorio.listFiles(新文件名过滤器(){
公共布尔接受(文件目录,字符串名称){
布尔值valido=(name.startsWith(finalReferenciaCeros)和&(name.endsWith(“.jpg”)| | name.endsWith(.jpg”);
返回valido;
}
});
如果(allFiles.length==0)返回“”;
返回所有文件[0]。getAbsolutePath();
这样,列表中总是有我想要的图像,或者什么都没有,所以如果它是空的,我可以显示一个默认图像^^