gpt4 book ai didi

android - getExternalFilesDir 不创建新目录

转载 作者:行者123 更新时间:2023-11-29 15:17:12 25 4
gpt4 key购买 nike

我正在尝试检查 SD 卡上的子目录结构是否存在;
如果没有,则创建一个新的。
那当然是在我的代码验证 SD 卡已安装并准备就绪之后。

我创建了有效的代码,并且成功地在我手机的 SD 卡上创建了结构,所以我知道我的代码是好的。然后我去 sleep 了。第二天,我将工作代码从我的测试区移到了我的工作区,现在它不起作用了!! :-( 我什至把它移回了测试区,但仍然没有工作!!

我猜测 Android Gremlins 在晚上做了一些破解密码的事情!!

所以...要么是 Android Gremlins 做了什么,要么(这是不可能的)我在移动代码时可能忘记了什么。有人有任何 Gremlin 驱虫剂吗?

我非常确定能够正常工作并实际创建我现在可以在手机上看到的结构的代码是这样的:


String strPathName = m_Context.getExternalFilesDir (null) .toString ();
// This DOES give the Correct Path on the SD Card

File dir;

dir = new File (m_Context.getExternalFilesDir (null) + "/MyDirectory");
dir = new File (m_Context.getExternalFilesDir (null) + "/MyDirectory/SubDir");
dir = new File (m_Context.getExternalFilesDir (null) + "/MyDirectory/SubDir/xxx");

在我的手机上,我可以清楚地看到这个结构。现在还在!!

第二天,(即在 Android Gremlins 访问之后)我尝试将此代码和其他代码从我的测试区域移动到不同的部分,此后,它不再创建结构。

我使用 De-Bugger(即 Gremlin Killer)单步执行,结果如下。

File dir;  
boolean bDirExists;

dir = new File (m_Context.getExternalFilesDir (null) + "/NewDirectory");
bDirExists = (dir.exists () && dir.isDirectory () ); // FALSE

dir = new File (m_Context.getExternalFilesDir (null) + "/NewDirectory/SubDir");
bDirExists = (dir.exists () && dir.isDirectory () ); // FALSE
bDirExists = dir.exists (); // FALSE
bDirExists = dir.isDirectory (); // FALSE

dir = new File (m_Context.getExternalFilesDir (null) + "/NewDirectory/SubDir/xxx");
bDirExists = (dir.exists () && dir.isDirectory () ); // FALSE

如果……我使用前一天使用的原始名称“/MyDirectory/SubDir/xxx”)
那么代码表明该目录确实存在

dir = new File (m_Context.getExternalFilesDir (null) + "/MyDirectory");  
bDirExists = (dir.exists () && dir.isDirectory () ); // TRUE

dir = new File (m_Context.getExternalFilesDir (null) + "/MyDirectory/SubDir");
bDirExists = (dir.exists () && dir.isDirectory () ); // TRUE
bDirExists = dir.exists (); // TRUE
bDirExists = dir.isDirectory (); // TRUE

现在……我们都知道,程序员从不破坏他们的代码,也从不将错误引入“已知的工作代码”,所以……。一定是 Gremlins……正确的??


第一次更新

@ChuongPham 评论说我可能需要在 list 文件中添加正确的权限。

由于代码 DID WORK,这意味着我 DID 已经启用了此权限。
但是,我决定删除此权限并查看它会抛出什么错误,我认为未经许可它不会编译。然后我运行了代码,没有抛出错误!!是的,它仍然不会创建新文件..

最佳答案

如果您使用 m_Context.getExternalFilesDir("MyDirectory/SubDir"),系统会自动为您创建自定义目录。在 API 19 或更高版本上测试...

关于android - getExternalFilesDir 不创建新目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23049100/

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