Android mkdirs() sdcard 不起作用

2024-01-11

我想在 Sdcard 中创建目录,并且我确实遵循:

  1. 我补充道:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />在清单中。
  2. 我通过以下方式获取 root_path:public static final String ROOT_PATH = Environment.getExternalStorageDirectory().toString() + "/Hello_World/";它返回/storage/emulated/0/Hello_World(调试时获取)。

接下来,我运行这段代码:

File file = new File(Constants.ROOT_PATH);
int i = 0;
while (!file.isDirectory() && !file.mkdirs()) {
    file.mkdirs();
    Log.e("mkdirs", "" + i++);
}

我也尝试过mkdirs() and mkdir()但它在 logcat 中显示无限循环(Log.e("mkdirs", "" + i++);)。有时有效,但有时无效。 谢谢你的帮助!
Update:我在某些设备上尝试了我的代码:Nexus 4、Nexus 7、Vega Iron、Genymotion、LG G Pro,然后只有 Vega Iron 按预期工作。 ??!!!?!?


尝试这样它将在中创建一个文件夹sd card

String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/hello_world");    
myDir.mkdirs();

如果您想检查该文件是否存在,请使用此代码

File file = new File (myDir, file_name);
if (file.exists ()) 
   // file exist 
else 
   // file not exist  

参考一下这个答案Android 将文件保存到外部存储 https://stackoverflow.com/a/7887114/964741

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android mkdirs() sdcard 不起作用 的相关文章

随机推荐

  • ggplot 在函数中不起作用,以字符串形式传入变量名

    我有以下简单的功能 但它的 ggplot 命令不起作用 当从命令行给出该命令时 该命令可以正常工作 gt testfn lt function gdf first second library ggplot2 print ggplot gd
  • 包含 symfony2 的文件

    我正在使用 google Drive api 在 symfony2 中进行捆绑 我在 Utils 文件夹中有一个类 Authentication 它与 google 中的文件 我放入完全相同的文件夹中 进行交互 我想将这些文件包含在我的 A
  • 在 B 列中为 A 列中的相同值选择最小值 excel?

    我想得到例如第 1 列中相同值的第 2 列中的最小值或最大值 在我的示例中 我希望值 A 列 1 的列 2 的最大值为 18 而 B 的最大值为 27 我尝试过使用数组函数 但无法使其正常工作 敬请期待任何提示或解决方案 Example C
  • 如何从 web 应用程序运行量角器?

    我想运行一些量角器测试 针对 angularApp 为此 我创建了一个用户界面 提示用户输入脚本文件 然后我需要以某种方式让量角器启动并运行测试 我有哪些选择来实现这一目标 您可以将文件传递到后端 并保存它 然后后端像平常一样执行测试pro
  • 有没有办法在 IE 中获取边框半径和渐变背景?

    我想知道是否有任何使用 javascript 或其他方法让 IE 显示边框半径或渐变背景的解决方法 我在寻找在 IE9 中使用 渐变和边框半径 的修复时遇到了这个问题 是的 虽然您现在可以在 IE9 中同时使用两者 但遗憾的是您不能同时使用
  • 使用 Vector 的 SIMD 向量化 C# 代码运行速度比经典循环慢

    我看过几篇文章描述了如何Vector
  • 递归重命名对象键

    我有一个递归函数来重命名对象的键名称 但我无法弄清楚如何重命名其中 2 个键 问题键是对象 我认为问题在于我正在检查对象类型 但此时如何重命名密钥 实际的数组非常大 但下面是一个缩小版本 任何帮助表示赞赏 var keys short ch
  • 表单中的两种方式数据绑定不起作用 Angular 2

    我有这个表单组件 它将作为输入User目的 我想使用该对象进行双向数据绑定 但它不起作用 有什么想法问题出在哪里吗 PS 问题似乎来自于输入参数的复制 如果我传递原始文件 它可以正常工作 但如果我传递副本 则两种方式的数据绑定将不起作用 我
  • 如何将日志消息从多处理模块路由到文件?

    In the Python 文档我发现记录消息 http docs python org library multiprocessing html logging在使用多处理模块生成不同进程的 python 脚本中是可能的 import m
  • 了解 Cassandra 中单个分区的读取

    我有一个 3 节点设置 Node1 172 30 56 60 Node2 172 30 56 61 和 Node3 172 30 56 62 它具有100K的单个分区数据 分区由nodeip构成 请查找 NodeIP 的令牌 分区值 172
  • 有序列表 (ol) 显示的数量?

    我的页面上有一个有序列表 ol 但编号根本没有显示 我已经这样做了 ol li my text li li my text li li my text li ol 当我输入上面的内容时 stackoverflow 能够按照我想要的方式正确渲
  • 替换序言中的空格

    在序言中是否可以用某个给定字符替换字符串的所有空格 例子 如果我有一个变量How are you today 而且我要How are you today 对于原子 有多种方法可以做到这一点 我发现以下特别简单 使用atomic list c
  • 在 Yii 2 中加载 jQuery 等核心脚本

    我一直很难弄清楚如何加载jQuery或其他核心脚本Yii 2 In Yii 1看来就是这样 在 Yii 2 中 app 是 Yii 的一个属性 而不是一个方法 所以上面的方法自然不行 而是改成 产生此错误 Getting unknown p
  • 测试 libstdc++ 的版本是否使用符合 C++11 的 std::string

    我正在编写一些 C 11 代码 这些代码对以下性质做出了假设std string有效 但代表 C 11 中更改的行为 早期 libstdc 的basic string实现符合 98 03 要求 但不符合更严格的 C 11 要求 据我了解 l
  • 让 GDB 在调试时完整打印一个大的 std::map

    我正在研究一种使用大地图的算法 我试图在纸上做的同时遵循 GDB 的算法 看看哪里出了问题 但随着地图变大 GDB 会缩写它并停止显示我需要的下一个值 gdb p R 1 std map with 140 elements 0 1 e 2
  • Anaconda/Orange3 产生 OSError: [WinError 193] %1 不是有效的 Win32 应用程序

    当我尝试在 Anaconda 中的 Windows 10 下启动 Orange 3 时 我得到了 以下错误 Traceback most recent call last File C Users i7 Anaconda3 Scripts
  • 带字符串的 switch 语句中需要常量表达式错误[重复]

    这个问题在这里已经有答案了 我收到一个 JSON 响应 大致如下所示 status success data The status字段可以有两个值 success or fail 所以在我的代码中 我有以下枚举 private enum S
  • 通用类型参数哪个具体扩展类?

    我想要一个实现接口的类 该接口指定特定的子类作为参数 public abstract Task implements TaskStatus
  • 使用 Convert 从 Mercurial Repo 中的子文件夹创建新的存储库

    我正在尝试提取一个文件夹 称之为Project1 来自现有的 Mercurial Repo 调用MainRepo 使用 Convert 扩展进行 Mercurial 到 Mercurial 的转换 我遵循了 Windows XP 下 Mer
  • Android mkdirs() sdcard 不起作用

    我想在 Sdcard 中创建目录 并且我确实遵循 我补充道