【问题标题】:Android: issue creating directoryAndroid:创建目录的问题
【发布时间】:2016-01-14 00:06:04
【问题描述】:

我正在尝试在图库文件夹中创建一个目录(仅用于存储视频和照片),我尝试了以下代码:

 File dir = new File(Environment.getExternalStorageDirectory() + "/" + Environment.DIRECTORY_DCIM + "/dirname");
 dir.makedirs() ;

问题是当我使用文件管理器浏览 SD 卡文件和文件夹时,一切正常并且文件确实存在,但是当我打开我的画廊时,没有名为 dirname 的目录。有什么问题?

谢谢:-)

【问题讨论】:

  • 目录名是否包含任何媒体图像文件?
  • 暂时不为空@Pavan
  • 只需添加一张图片并检查

标签: java android file sd-card


【解决方案1】:

这是我的函数,它获取位图并将其保存在目录中......

 public void saveBitmap(Bitmap bitmap) {

    if (createDirIfNotExists("TestApp")) {
        String filePath = Environment.getExternalStorageDirectory()
                + File.separator + "TestApp/TestSC" + date_value + "_" + time_value + ".png";
        File imagePath = new File(filePath);
        FileOutputStream fos;
        try {
            fos = new FileOutputStream(imagePath);
            bitmap.compress(CompressFormat.PNG, 100, fos);
            fos.flush();
            fos.close();
            hideLoadingDialog();
            showAlert(getString(R.string.successfullySavedPic));
        } catch (FileNotFoundException e) {
            hideLoadingDialog();
            showAlert(getString(R.string.problemOccured));
            Log.e("error", e.getMessage(), e);
        } catch (IOException e) {
            hideLoadingDialog();
            showAlert(getString(R.string.problemOccured));
            Log.e("error", e.getMessage(), e);
        }
    } else {
        String filePath = Environment.getExternalStorageDirectory()
                + File.separator + "Pictures/TestSC" + date_value + "_" + time_value + ".png";
        File imagePath = new File(filePath);
        FileOutputStream fos;
        try {
            fos = new FileOutputStream(imagePath);
            bitmap.compress(CompressFormat.PNG, 100, fos);
            fos.flush();
            fos.close();
            hideLoadingDialog();
            showAlert(getString(R.string.successfullySavedPic));
        } catch (FileNotFoundException e) {
            hideLoadingDialog();
            showAlert(getString(R.string.successfullySavedPic));
            Log.e("error", e.getMessage(), e);
        } catch (IOException e) {
            hideLoadingDialog();
            showAlert(getString(R.string.successfullySavedPic));
            Log.e("error", e.getMessage(), e);
        }
    }


}

createDirIfNotExist():

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;
}

【讨论】:

    【解决方案2】:

    试试getAbsolutePath():

    String filePathDir = Environment.getExternalStorageDirectory()
                .getAbsolutePath()
                + "/"
                + appNameFolder
                + "/"
                + innerFolder;
    File fileDir = new File(filePathDir);
    if (!fileDir.exists())
        fileDir.mkdirs();
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    • 2015-01-04
    • 2016-11-16
    相关资源
    最近更新 更多