android 外部存储创建目录,无法在Android的外部存储上创建文件夹

我的开发电话正在Nexus 5运行Android 4.4.2。

在我的应用程序中,我试图在外部存储上创建一个文件夹,该文件夹将存储我的应用程序的调试信息。基本上,它将包含应用程序执行的所有命令,因此,当用户遇到问题时,我可以选择使它们从debug文件夹发送信息给我进行分析。

我首先尝试将文件写入文件夹,但发现创建文件夹时出错。最初,我使用mkdir(),然后又移至mkdirs()也不起作用。

我有

/>我的清单。

这是用于创建文件夹的代码:

File folder = new File(Environment.getExternalStorageDirectory() + "/DebugData");

String path = folder.getPath();

if(!folder.mkdirs() || !folder.exists()){

Log.e(LOG_TAG, path + " failed");

} else {

Log.d(LOG_TAG, path + " succeeded");

}

这是我也尝试过的:

//Check SD card state

String state = Environment.getExternalStorageState();

if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state) || !Environment.MEDIA_MOUNTED.equals(state)) {

Log.e(LOG_TAG, "Error: external storage is read only or unavailable");

} else {

Log.d(LOG_TAG, "External storage is not read only or unavailable");

}

这将返回外部存储 不是 只读或不可用。

我也尝试过不同的路径,例如 File folder = new

File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),

"Folder1");

这就是真正令人困惑的地方。

我尝试在其他手机上进行开发。首先,我抢了一辆Galaxy S4 GT-i9505跑步鞋,Android

4.2.2而且效果很好。我能够创建文件夹并将其写入。这告诉我代码在起作用。另外,通过在S4和Nexus 5上运行代码返回的路径是相同的。

然后我认为这可能是特定于android版本的。因此,我抓住了一个Nexus 4with Android

4.4.2,代码也可以使用它。创建了文件夹,并允许我写信给他们。

这些手机均未扎根,并且均为库存标准。Nexus 5上没有特殊的应用程序或任何我认为可以引起权限问题的明智设置。连接设置为媒体设备(MTP)。

编辑:

我还要补充一点,我尝试了以下方法,但也没有用:

将文件写入外部存储的根目录

在外部存储根目录中创建文件并将其写入

在概述的路径中创建文件夹并向其中写入文件

在概述的路径中创建文件并将其写入

我对造成这种情况的原因感到困惑,是否可以测试或更改其他任何方法来解决此问题?

编辑2:

事实证明,该问题是由于索引所致。

基本上,我测试过的所有其他设备都允许我重新连接USB连接并查看创建的文件和文件夹。

由于某种原因,我的Nexus 5无法为文件夹/文件建立索引,即使它们存在也是如此。

我下载了另一个第三方文件浏览器应用程序,并注意到所有文件夹和文件都在其中。

因此,要通过USB调试来查看这些文件夹和文件,我必须重新启动手机才能为它们重新编制索引,这似乎很烦人,但总比不工作要好。

谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值