2 jonahzheng jonahzheng 于 2013.04.27 14:17 提问

如何判断assets下的某一个文件是否存在

if ((new File("file://android_assets/aa.mp3")).exists()) {}
if ((new File("aa.mp3")).exists()) {}
以上方法都无法判断

4个回答

jonahzheng
jonahzheng   2013.05.02 13:58
已采纳

感谢以上两位朋友的回答,@franzhong的方式我用过,也是可以的
下面我用的方法,

/**  
     * 加载本地图片  
     * @param url  
     * @return  
     */    
    public static Bitmap getLoacalBitmapByAssets(Context c, String url)    
    {    
        Bitmap bitmap = null;    
        InputStream in = null;    
        try    
        {    
            in = c.getResources().getAssets().open(url);    
            bitmap = BitmapFactory.decodeStream(in);    
        }    
        catch (IOException e)    
        {    
            e.printStackTrace();    
        }    
        finally    
        {    
            closeStream(in, null);    
        }    
        return bitmap;    
    }   

            Bitmap bmp = getLoacalBitmapByAssets(getActivity(), strIconName);
            if (bmp!=null){ //如果返回的bmp不为空,表示存在这这个资源         
                ivIcon.setImageBitmap(bmp);
                //I
suannai0314
suannai0314 帮你编辑了下代码格式,详细的markdown使用方法见:http://ask.csdn.net/pages/markdown
大约 5 年之前 回复
franzhong
franzhong   2013.04.27 18:37
private boolean bAssetsFile(String pt){
       AssetManager am = getAssets();
       try {
        String[] names = am.list("");           
        for(int i=0;i<names.length;i++){
            //Log.d("FILES",names[i]);
            if(names[i].equals(pt.trim())){
                System.out.println(pt+"文件存在!!!!");
                return true;
            }else{
                //System.out.println(pt+"不存在啦!!!!");
            }
        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    System.out.println("不存在!");
    return false;
}
//call the function
//bAssetsFile("blue_three.png");

默认访问assets根目录

feifei454498130
feifei454498130   2013.04.27 14:20
AssetManager asset = getAssets();
try {
    asset.open("filename");
} catch (IOException e) {
    e.printStackTrace();
}

如果异常就代表不存在吧

zhu071011
zhu071011 每次异常都会因为手机不同而产生100MS+的主线程中断时间,会影响性能不推荐!
大约 2 年之前 回复
jonahzheng
jonahzheng 用常规的文件的open方法都是无法访问到文件的,asset下的文件比较特殊
大约 5 年之前 回复
xinjie1023
xinjie1023   2016.07.21 15:14

学习,谢谢·franzhong 。
如果判断APP包内对应的File文件夹下的某个文件是否存在,如何判别呢?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android判断asset中是否存在某个文件
Android判断asset中是否存在某个文件
【Android】判断assets文件夹下的某个文件是否存在
编程的时候,我们并不能把所有的文件或者资源都放在res文件夹下,那样编译时会生成一个id,不仅会浪费资源还可能会出现各种各样的问题。有些文件放在assets文件下就比较好。那么放在assets文件夹下的文件要怎么获取呢? 看看下面的算法就很清楚了 /** * 判断assets文件夹下的文件是否存在 * * @return false 不存在 true
如何判断文件或文件夹是否存在
c#编写的如何判断文件或文件夹是否存在 编写的如何判断文件或文件夹是否存在
判断一个文件是否是指定后缀名的文件
package com.toogen.log4j; import java.io.File; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class FileTest { private static Log log = LogFactory.getL
java如何查找目录下是否有特定文件
import java.io.File; import java.io.FilenameFilter; /** * java如何查找目录下是否有特定文件 * */ public class ListFile { private String filepre;// 文件前缀 private String filesux;// 文件后缀 public void listFile(
安卓(java)判断文件是否存在
public boolean fileIsExists(String strFile) { try { File f=new File(strFile); if(!f.exists()) { return false; } } catch (Exception e) {
如何用SQL来检测文件是否存在
工作中,我们经常需要检查上传的文件是否存在,用户上传的头像是否存在,等等。 有没有办法直接用SQL来查询呢? 请直接看代码: /************************************************************  * Create By Jacky  * Time: 2016-08-16 11:14:30  ************
shell判断一个进程是否存在
有时候,在shell脚本里我们想判断某一个进程是否存在,根据进程是否存在的判断来实现不同的逻辑。
windows客户端开发--判断一个文件夹中是否存在文件夹
我们做windows客户端,往往需要与文件夹打交道。比如说某些特定的情况下,我们需要删除某个文件夹的子文件夹的全部内容。有时候程序执行的比较慢,我们需要判断到底是否删除了文件夹下的子文件夹呢?换种思维,如果我们能计算出某个文件下下有多少个子文件夹呢?FindFirstFile 函数功能描述:查找指定目录的第一个文件或目录并返回它的句柄 HANDLE FindFirstFile(
Excel VBA实用代码1:判断工作表是否存在,文件是否存在[20110227]
<br />Private Function FileExists(fname) As Boolean<br />'当文件存在时返回true<br />    Dim x As String<br />    x = Dir(fname)<br />    If x <> "" Then FileExists = True _<br />        Else FileExists = False<br />End Function <br /> <br /> <br /><br />Private Fu