我在学习android写入文件时遇到了这样一个问题,我想将一个已经存在于项目资源文件中的文件写入SD卡中,
Resources resources=getBaseContext().getResources();
is=resources.openRawResource(imageAdapter.imageIDs[index]);
其中imageAdapter.imageIDs[index]是资源文件的索引//取得资源文件的名称
String entryName=resources.getResourceEntryName(imageAdapter.imageIDs[index]);
但是不知道怎么样取得资源文件的后缀名,因为我想在这句代码中使用
File newFile=new File(root,"123.jpg");
我不想在代码中将文件名限制死,各位大虾帮帮忙,我弄了一个下午了还是没找到用什么方法来实现

解决方案 »

  1.   

    可以通过实现FilenameFilter接口来操作。循环判断你获取的文件,判断下,FilenameFilter的使用如下:/* 过滤文件类型 */
    class MusicFilter implements FilenameFilter
    {
    public boolean accept(File dir, String name)
    {
    //这里还可以设置其他格式的音乐文件
    return (name.endsWith(".mp3"));
    }
    }
      

  2.   

    String + endswith 判断就完了
      

  3.   


    MimeType请参考http://en.wikipedia.org/wiki/MIME_type#List_of_common_media_types
      

  4.   

    首先要谢谢你 虽然你给的答案不是我想要的  我想要的答案是 如何取得资源文件的后缀名 比如说 drawable 中有一张名为123.png的图片资源,我想去的的是“123.png”这个全文件名或者“.png”这个后缀
      

  5.   

     既然能得到文件名,那就可以把它转化成string对象,然后用string.subString(string.lastIndeOf("."))
      

  6.   


    上面少写了一个字:string.subString(string.lastIndexOf("."))
      

  7.   

    4楼的GG还是mm啊 也太给力了  我不否认那个方法可以实现我想要的功能,但是要写好多代码,毕竟你程式中可能会放很多不同类型的资源文件,这样一种一种判断好像太原始了,但也不失为最后的解决方法,谢谢你
      

  8.   

    Context.getResources().getString(resId);
    对于图片资源一样适用。
      

  9.   

    后缀啊,apk是一个zip文件,直接上zipentry遍历下就知道了
      

  10.   

     getResources().getResourceEntryName(R.id)