首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >没有创建文件夹,尽管调用了mkdir

没有创建文件夹,尽管调用了mkdir
EN

Stack Overflow用户
提问于 2017-10-05 21:27:32
回答 1查看 45关注 0票数 0

与往常一样,我道歉,如果这是简单的,我是一个新手,没有正规的教育。我将于2018年秋季前往联合国大学。

我有一个密码管理器,它可以将其设置备份到一个文件中,这样用户以后就可以恢复它了。在测试此特性(以及相应的“还原”功能)时,我让它简单地将备份文件放在用户的下载目录中。这是没有问题的,我必须说,没有权限的问题。运行时权限和清单权限都是存在的,并且是功能性的。

当我试图将备份文件放在我自己创建的目录中时,问题就出现了。我希望把它放在用户文档目录中的一个名为"PSync“的文件夹中。检查它是否存在的代码,如果不存在,将正确地运行它,并且不会调用错误。它什么也不做。附件是相关代码,以及演示它使用的路径的图片。应该注意的是,} else {内部的语句正在运行,但没有创建该文件。

代码语言:javascript
运行
复制
 String dirPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).getPath().toString();
                    dirPath = dirPath + "/PSync";
                    Toast.makeText(Main.this, "Path: " + dirPath, Toast.LENGTH_SHORT).show();
                    File directory = new File(dirPath);

                    if (directory.isDirectory()) {
                    } else {
                        directory.mkdir();
                        Toast.makeText(Main.this, "Directory created.", Toast.LENGTH_SHORT).show();
                    }

具有演示的文件路径的Pic:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-06 02:02:43

这个问题已经解决了,主要是通过CommonsWare的评论。我相信确切的修复方法是使用File(Environment.getExternalStoragePublicDirectory(Environme‌​nt.DIRECTORY_DOCUMEN‌​TS), "PSync"),其余的只是简单地反映了良好的编程实践,比如错误检查。

新的守则是;

代码语言:javascript
运行
复制
 //Checks if the specified directory exists.
                    File directory = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "PSync");

                    //Saves this path to be used later.
                    String bkPath = directory.getPath().toString();

                    //Checks if the directory exists. If it does not, then it creates it.
                    if (directory.exists()) {
                    } else {
                        Boolean success = directory.mkdirs();
                        if (success) {
                          Log.e(directory.getPath(), "Directory successfully created");
                        } else {
                            Log.e(directory.getPath(), "Directory creation failed.");
                        }
                    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46595052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档