2011-03-04 129 views
2

我试着将数据保存到SD卡的Android目录问题,起初我试图使用getExternalFilesDir app目录内私下saave它externalStorage,但给我的NullPointerException所以我尝试给其他方式下面,它的工作,但是当我想存储文件到自定义目录,我想自己命名它给我的错误:将图片保存到SD卡

FileOutputStream os; 
dirName = "/mydirectory/"; 
     try { 
      if (android.os.Environment.getExternalStorageState().equals(
        android.os.Environment.MEDIA_MOUNTED)){ 
       File sdCard = Environment.getExternalStorageDirectory(); 
       File dir = new File (sdCard.getAbsolutePath() + dirName); 
       dir.mkdirs(); 
       //File file = new File(this.getExternalFilesDir(null), this.dirName+fileName); //this function give null pointer exception so im using other one 
       File file = new File(dir, dirName+fileName); 
       os = new FileOutputStream(file); 
      }else{ 
       os = context.openFileOutput(fileName, MODE_PRIVATE); 
      } 
      resizedBitmap.compress(CompressFormat.PNG, 100, os); 
      os.flush(); 
      os.close(); 
     }catch(Exception e){ 

     } 

错误日志:

java.io.FileNotFoundException:/mnt/sdcard/mvc/mvc/myfile2.png (没有这样的文件或目录)

+0

尝试登录要传递到所有的文件和目录调用的参数 - 可能你没有做什么,你以为你是。还要检查所有的返回值,以便知道是否没有工作。 – 2011-03-04 16:58:14

+0

你有完整的堆栈跟踪吗? – thoredge 2011-03-04 17:10:26

回答

8

您的目录 “到/ mnt/SD卡/ MVC/MVC” 可能不存在。如何改变你的路径,将图像存储在Environment.getExternalStorageDirectory()路径中,然后从那里开始工作?

此外,罗伯特指出,要确保你在你的清单有write permission to external storage

编辑 - 创建目录:

String root = Environment.getExternalStorageDirectory().toString(); 
new File(root + "/mvc/mvc").mkdirs(); 

然后你可以将文件保存到root + "/mvc/mvc/foo.png"

+0

当我直接存储在像你上面说它工作正常根,但我想创建一个目录,并命名为其“形象”,并在其中存储 – user606669 2011-03-04 16:37:22

+0

我加信息关于创建目录 – 2011-03-04 16:54:54

+0

工作很大的图像..谢谢 – user606669 2011-03-04 17:26:16

0

您应该检查您是否已将所需权限android.permission-group.STORAGE添加到您的应用中。没有该许可,您将无法访问SD卡上的任何内容。

BTW:在Android系统我知道SD卡安装在/sdcard/mnt/sdcard

+0

是的,我已经包括了权限和我检查文件资源管理器(ddms)它显示/ mnt/sdcard /但问题是一样的。但现在我得到这个错误,当我改变我的行到这个文件文件=新文件(目录,dirName); – user606669 2011-03-04 16:30:40

+0

错误:java.io.FileNotFoundException:/mnt/sdcard/mydirectory/myfile2.png(是一个目录) – user606669 2011-03-04 16:33:37

5

你有要求的权限写入到SD卡?下面的字符串添加到您的应用程序清单:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
0

我发现这本书是非常有帮助的:“临Android的媒体:开发图形,音乐,视频和富媒体应用程序的智能手机和平板”。我注意到一部分允许将图像和内容保存到SD卡中。

+0

那么,如果你只是给我发送一些样本页面,那么它会很好看,如果发现有用,请考虑购买它。谢谢,你会在我的个人资料 – user606669 2011-03-04 22:36:26

+0

中找到我的电子邮件地址似乎无法在你的个人资料中找到你的电子邮件地址?如果你能看到我的消息,我会回复! :) – Stephen 2011-03-04 23:34:03