Android在应用程序的根目录中创建文件夹



我正在创建一个模块,例如我给了摄像机访问映像和捕获的映像,只能通过不在图库中的应用程序或文件管理器中看到捕获的图像。但是只有在像三星Mi手机的某些手机中,图像不可见,但在一个Plus和Sony图像中是可见的,为什么,它可以在某些手机中工作,而在某些手机中也不可见

我的代码:

private void createDirectoryAndSaveFile(Bitmap imageToSave) {
    File direct = new File(getFilesDir() + "/CAT_IMG/");
    String timeStamp = new SimpleDateFormat("ddMMyyyy_HHmmss").format(new Date());
    String fileName = "fav" + timeStamp + ".JPG";
    if (!direct.exists()) {
       // File wallpaperDirectory = new File("/CAT_IMG");
        direct.mkdir();
    }
    File file = new File(direct, fileName);
    if (file.exists()) {
        file.delete();
    }
    try {
        FileOutputStream out = new FileOutputStream(file);
        imageToSave.compress(Bitmap.CompressFormat.JPEG, 100, out);
        out.flush();
        out.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 1 && resultCode == Activity.RESULT_OK) {
        Bitmap photo = (Bitmap) data.getExtras().get("data");
        createDirectoryAndSaveFile(photo);
        Log.e("URI", data.getExtras().get("data") + "");
    }
}

您将需要权限,在AndroidManifest.xml

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

创建目录: -

 File mydir = context.getDir("dirname", Context.MODE_PRIVATE);
    if (!mydir.exists())
    {
         mydir.mkdirs();
    }

如果要将文件存储在应用程序的根目录中,则应使用getExternalFilesDir在应用程序的根目录中创建您的目录,例如:

File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
if (!storageDir.exists()) {
    storageDir.mkdirs();
}

,然后将图像文件放入目录中。也不要忘记在AndroidManifest.xml中提供权限以读写存储,如下所示:

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

最新更新