为了账号安全,请及时绑定邮箱和手机立即绑定

如何在SD卡上自动创建目录

如何在SD卡上自动创建目录

白衣非少年 2019-08-15 15:09:28
如何在SD卡上自动创建目录我正在尝试将我的文件保存到以下位置,FileOutputStream fos = new FileOutputStream("/sdcard/Wallpaper/"+fileName); 但是我得到了异常java.io.FileNotFoundException但是,当我把路径保存"/sdcard/"起来的时候。现在我假设我无法以这种方式自动创建目录。有人可以建议如何创建directory and sub-directory使用代码吗?
查看完整描述

3 回答

?
www说

TA贡献1775条经验 获得超8个赞

如果您创建一个包装顶级目录的File对象,您可以调用它的mkdirs()方法来构建所有需要的目录。就像是:

// create a File object for the parent directory

File wallpaperDirectory = new File("/sdcard/Wallpaper/");

// have the object build the directory structure, if needed.

wallpaperDirectory.mkdirs();

// create a File object for the output file

File outputFile = new File(wallpaperDirectory, filename);

// now attach the OutputStream to the file object, instead of a String representation

FileOutputStream fos = new FileOutputStream(outputFile);

注意:使用Environment.getExternalStorageDirectory()来获取“SD卡”目录可能是明智之举,因为如果手机出现了除SD卡以外的其他东西(例如内置闪存,则可能会更改)苹果手机)。无论哪种方式,您都应该记住,您需要检查以确保它实际存在,因为可能会移除SD卡。


更新:自API级别4(1.6)起,您还必须请求许可。这样的事情(在清单中)应该有效:


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


查看完整回答
反对 回复 2019-08-15
?
largeQ

TA贡献2039条经验 获得超7个赞

这对我有用。

 uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"

在你的清单和下面的代码中

public static boolean createDirIfNotExists(String path) {
    boolean ret = true;

    File file = new File(Environment.getExternalStorageDirectory(), path);
    if (!file.exists()) {
        if (!file.mkdirs()) {
            Log.e("TravellerLog :: ", "Problem creating Image folder");
            ret = false;
        }
    }
    return ret;}


查看完整回答
反对 回复 2019-08-15
  • 3 回答
  • 0 关注
  • 513 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信