gpt4 book ai didi

java - 由于缺少/而未创建文件夹?

转载 作者:太空宇宙 更新时间:2023-11-03 13:25:34 25 4
gpt4 key购买 nike

fragment 1

 public class MyLogs {
private static File root;

private static String rootPath;

static {
rootPath = Environment.getExternalStorageDirectory().toString() + "/MyFolder/Sub1/Sub2";
root = new File(rootPath);
root.mkdirs();
}
}

使用上面提到的代码我无法在 SD 卡上创建文件夹。 root.mkdirs() 在这种情况下返回 false,但是当我使用 rootPath = Environment.getExternalStorageDirectory().toString() + "/MyFolder/Sub1/Sub2/";(我在 Sub2 之后添加了一个“/”),它创建了文件夹。我已经搜索过了,但没有得到答案。

fragment 2

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

在这种情况下,“MyFolder”应该充当文件,但它允许我在这种情况下创建文件夹。请赐教。提前致谢。

最佳答案

好问题。我最初的回答是不正确的,尽管它收到了 5 票赞成票。在 Android libcore 源错误引导后花了一些时间重写了答案。

您的代码是正确的,尾部斜杠并不重要。 File 构造函数无论如何都会删除任何结尾的斜杠。 (参见 sourcesinit() 调用的 fixSlashes()。)

可以解释为什么没有创建目录的原因:

  • 您的应用没有WRITE_EXTERNAL_STORAGE权限。

  • 代码没有运行。它在静态初始化程序中。你必须例如实例化该类,以便类加载器加载它并运行静态初始化程序。

关于java - 由于缺少/而未创建文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20857252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com