Android sdcard0中的文件夹不可见,无法删除
我使用的是三星NEXUS和安卓4.2.1。今天我删除了一个由我开发的应用程序创建的文件夹。在这之前的几个月里,该应用一直运行良好。我通过ES3文件浏览器应用程序手动删除了该文件夹,以测试某些内容。这并没有给出任何来自Android的错误消息,我认为它和任何删除一样工作。但是,我无法再手动或通过代码创建此文件夹。任何其他文件夹都可以通过任何一种方式创建和删除Android sdcard0中的文件夹不可见,无法删除,android,storage,adb,Android,Storage,Adb,我使用的是三星NEXUS和安卓4.2.1。今天我删除了一个由我开发的应用程序创建的文件夹。在这之前的几个月里,该应用一直运行良好。我通过ES3文件浏览器应用程序手动删除了该文件夹,以测试某些内容。这并没有给出任何来自Android的错误消息,我认为它和任何删除一样工作。但是,我无法再手动或通过代码创建此文件夹。任何其他文件夹都可以通过任何一种方式创建和删除 File f = new File(Environment.getExternalStorageDirectory(), "myfolder
File f = new File(Environment.getExternalStorageDirectory(), "myfolder");
System.out.println(f.mkdirs());
System.out.println(f.exists());
两张照片都是假的
通过adb,shell尝试了以下方法
mkdir myfolder
mkdir failed for myfolder, File exists
但是,ls不列出myfolder
如果您能知道为什么会发生这种情况或找到解决办法,我们将不胜感激
提前感谢。重新启动平板电脑,问题消失。一定是平台问题 您的清单中是否有访问和写入服务器的正确权限SDCARD@RvdK谢谢你的回复。是,应用程序已获得所有必需的权限。事实上,这里的问题不是应用程序。我可以让应用程序运行使用不同的名称为文件夹,它的工作刚刚好。这里的问题是已创建的文件夹myfolder,我已将其删除,现在SD卡内部存储中的任何位置都不可见。但是,adb和文件资源管理器都不允许使用该名称创建文件夹。我需要在我的平板电脑中创建相同的文件夹,并避免对源代码进行任何更改。谢谢建议的代码。这在我的应用程序中已经运行良好。请查看我对上述评论的回复您是否在其他设备上进行了测试?请下次复制其他人的答案时,同时提供一个链接:@BabulPatel是的,它在任何其他设备上都可以正常运行。我所需要的只是用与以前相同的名称创建的文件夹。这不是手动或通过应用程序发生的。如果手动创建文件夹,会发生什么错误。检查你的文件夹是否隐藏了?在任何文件夹之前,如果你插入.dot,Android认为它是隐藏文件夹…所以检查一下
To create a directory you can use the following code:
File dir = new File("path/to/your/directory");
try{
if(dir.mkdir()) {
System.out.println("Directory created");
} else {
System.out.println("Directory is not created");
}
}catch(Exception e){
e.printStackTrace();
}
To delete an empty directory, you can use this code:
boolean success = (new File("your/directory/name")).delete();
if (!success) {
System.out.println("Deletion failed!");
}
To delete a non-empty directory, you can use this code:
public static boolean deleteDir(File dir) {
if (dir.isDirectory()) {
String[] children = dir.list();
for (int i=0; i<children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
return dir.delete();
}
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Original Answer here http://stackoverflow.com/a/5693077/2931489
Try this answer
if (!sdcarddir.exists())
sdcarddir.mkdir();
Check in all folders by doing this...
String[] myDirectories = {"","",""......}; // your list of directories
for (String directory : myDirectories ) {
File file = new File(directory);
if(file.exists() && file.isDirectory())
// Do something you have found your directory
}
Or try this..
File f = new File(Environment.getExternalStorageDirectory() + "/somedir");
if(f.isDirectory()) {
....
}
else .... Make directory
To create a directory you can use the following code:
File dir = new File("path/to/your/directory");
try{
if(dir.mkdir()) {
System.out.println("Directory created");
} else {
System.out.println("Directory is not created");
}
}catch(Exception e){
e.printStackTrace();
}
To delete an empty directory, you can use this code:
boolean success = (new File("your/directory/name")).delete();
if (!success) {
System.out.println("Deletion failed!");
}
To delete a non-empty directory, you can use this code:
public static boolean deleteDir(File dir) {
if (dir.isDirectory()) {
String[] children = dir.list();
for (int i=0; i<children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
return dir.delete();
}
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Original Answer here http://stackoverflow.com/a/5693077/2931489
Try this answer
if (!sdcarddir.exists())
sdcarddir.mkdir();
Check in all folders by doing this...
String[] myDirectories = {"","",""......}; // your list of directories
for (String directory : myDirectories ) {
File file = new File(directory);
if(file.exists() && file.isDirectory())
// Do something you have found your directory
}
Or try this..
File f = new File(Environment.getExternalStorageDirectory() + "/somedir");
if(f.isDirectory()) {
....
}
else .... Make directory