【问题标题】:Android: How to access a file in the SD CardAndroid:如何访问 SD 卡中的文件
【发布时间】:2011-08-18 03:42:26
【问题描述】:

我正在尝试使用以下代码访问 SD 卡上的图像,但我收到 File not found 异常。有人可以告诉我访问文件的正确方法吗???

new File("/mnt/sdcard/splah2.jpg")

【问题讨论】:

  • 您是否在 AndroidManifest 文件中添加了适当的权限?

标签: android android-sdcard filenotfoundexception


【解决方案1】:

试试这样:

String SD_CARD_PATH = Environment.getExternalStorageDirectory().toString();
new File(SD_CARD_PATH + "/" + "splah2.jpg");

【讨论】:

  • 天啊!!!!很遗憾,dat 是文件名中的一个愚蠢的拼写错误 :) 感谢您拯救了我的一天 :)
  • 外部存储并不总是意味着它是 SD 卡。一些制造商在内置的内部存储器中预留了一个空间,可以充当“外部存储器”。仔细阅读official definition here
【解决方案2】:

尝试运行:new File(Environment.getExternalStorageDirectory() + "/splah2.jpg")

【讨论】:

  • @Mayu 可能是因为文件不在您要查找的位置
【解决方案3】:

试试这个,

File f=new File("/sdcard/splah2.jpg");

【讨论】:

  • 不要那样做。尽量不要使用硬编码路径来访问外部存储器。
【解决方案4】:

下面的代码对我有用。

String mRelativeFolderPath = "/DCIM/Camera/";  // i.e. SDCard/DCIM/Camera
String mBaseFolderPath = Environment.getExternalStorageDirectory().getAbsolutePath() + mRelativeFolderPath; 
String filePath = mBaseFolderPath  + "test.jpg";
File handle = new File(filePath);

沙士

【讨论】:

    【解决方案5】:

    试试

        new File("/sdcard/splah2.jpg")
    

        new File(Environment.getExternalStorageDirectory() + "/" + "splah2.jpg")
    

    如果安装了 SD 卡,两者都是一样的,因为,

        Environment.getExternalStorageDirectory() returns "/sdcard"
    

    【讨论】:

      猜你喜欢
      • 2011-10-17
      • 2013-09-03
      • 1970-01-01
      • 1970-01-01
      • 2015-07-27
      • 1970-01-01
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多