Android sdcard0中的文件夹不可见,无法删除

Android sdcard0中的文件夹不可见,无法删除,android,storage,adb,Android,Storage,Adb,我使用的是三星NEXUS和安卓4.2.1。今天我删除了一个由我开发的应用程序创建的文件夹。在这之前的几个月里,该应用一直运行良好。我通过ES3文件浏览器应用程序手动删除了该文件夹,以测试某些内容。这并没有给出任何来自Android的错误消息,我认为它和任何删除一样工作。但是,我无法再手动或通过代码创建此文件夹。任何其他文件夹都可以通过任何一种方式创建和删除 File f = new File(Environment.getExternalStorageDirectory(), "myfolder

我使用的是三星NEXUS和安卓4.2.1。今天我删除了一个由我开发的应用程序创建的文件夹。在这之前的几个月里,该应用一直运行良好。我通过ES3文件浏览器应用程序手动删除了该文件夹,以测试某些内容。这并没有给出任何来自Android的错误消息,我认为它和任何删除一样工作。但是,我无法再手动或通过代码创建此文件夹。任何其他文件夹都可以通过任何一种方式创建和删除

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