如何解决如何在 android 11 中创建自定义文件夹App 文件夹
Im facing a problem when creating app custom folder. like
com.app 和 storage/.hideFolder 等
通过使用低于 android 11 (SDK API 30) 设备的一些方法
它工作正常,但在 android 11 中。无法使用如下所示的方法实现它
public static String root= Environment.getExternalStorageDirectory().toString();
public static final String app_hided_folder ="/.HidedAPPTop/";
public static final String app_showing_folder ="/APPTop/";
public static final String draft_app_folder= app_hided_folder +"Draft/";
public static void make_directry(String path,Context context) {
File dir = new File(path);
if (!dir.exists())
Toast.makeText(context,(dir.mkdirs() ? "Directory has been created" : "Directory not created"),Toast.LENGTH_SHORT).show();
else
Toast.makeText(context,"Directory exists",Toast.LENGTH_SHORT).show();
}
make_directry(Variables.app_hided_folder,getContext());
清单
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
…
android:requestLegacyExternalStorage="true"
…
>
第二个问题
公共静态字符串根= Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS ).toString();
uri 是我从选择器的响应中得到的视频路径。
File video_file = new File(uri.getPath());
Log.d(Variables.tag + " new path",video_file.getAbsolutePath());
Functions.copyFile(video_file,new File(Variables.gallery_resize_video));
public static void copyFile(File sourceFile,File destFile) throws IOException {
if (!destFile.getParentFile().exists())
destFile.getParentFile().mkdirs();
if (!destFile.exists()) {
destFile.createNewFile();
}
FileChannel source = null;
FileChannel destination = null;
try {
source = new FileInputStream(sourceFile).getChannel();
destination = new FileOutputStream(destFile).getChannel();
destination.transferFrom(source,source.size());
} finally {
if (source != null) {
source.close();
}
if (destination != null) {
destination.close();
}
}
}
错误:新路径: /storage/emulated/0/Download/STOP/MP4_20210128_225711.mp4 系统错误: java.io.FileNotFoundException: /storage/emulated/0/Download/.HidedTop/gallery_resize_video.mp4: 打开失败:EACCES(权限被拒绝)
应用程序在目的地崩溃 =
new FileOutputStream(destFile).getChannel();
解决方法
通过使用下面的代码片段,我的问题就解决了。
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)
.getExternalStoragePublicDirectory()
已弃用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。