Android 4.4.2 File.mkdir() 和 mkdirs() 正在创建文件而不是目录

标签 android android-4.4-kitkat mkdir mkdirs

这个问题与this question无关.我已经看到它了,但它是特定的 Android 4.4.2 问题,因为该代码在其他版本的 Android 上运行良好。

final File path = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/MY_Downloads");

        if (!path.exists()) {
            path.mkdir(); // also tried it with path.mkdirs();
            context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(path)));
        }

我正在使用此代码创建一个 FILE 而不是 Android 4.4.2 上的文件夹。请帮助我已经读过这个article

我已授予以下权限

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

我知道如何访问 SD 卡和有关公共(public)目录的最新更改,但我想创建一个文件夹而不是文件

最佳答案

前几代安卓设备都是使用SD卡存储,访问SD卡只需使用SDK方法提供的路径即可

Environment.getExternalStorageDirectory()

很快,较新的设备开始出现,带有大型内部存储分区,这些分区被映射为外部存储,以便调用 Environment 等方法。

getExternalStoragePublicDirectory(字符串)

现在指向这个内部存储而不是物理 SD 卡。

一些最新的设备,例如三星 Galaxy Nexus,甚至没有 SD 卡插槽。

refer this blog

希望对您有所帮助。

关于Android 4.4.2 File.mkdir() 和 mkdirs() 正在创建文件而不是目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22188068/

相关文章:

android - 我的 cordova 应用程序在检测到 NFC 标签后无法启动

android - 无法识别的 VM 选项 'MaxPermSize=512m' 错误 : Could not create the Java Virtual Machine. 错误 : A fatal exception has occurred. 程序将退出

安卓 mkdirs() 不工作

java - 如何在 Java 中以线程安全的方式使用 mkdirs?

ruby-on-rails - 如何修复 Errno::EACCES: 权限被拒绝@ dir_s_mkdir -

Android 改造 GET @Query ArrayList

java - 安装错误: INSTALL_FAILED_UID_CHANGED

android - MonkeyTalk (2.0.4) Android (KitKat) - ActionBar 溢出菜单支持吗?

java - KitKat 上的按钮文本消失(API 级别 19)

android - 在 android 4.4 中为 android 应用程序添加红外遥控