2016-02-05 166 views
-2

我按照需求不断创建和删除相同的文件夹。 mkdir()正确创建一些时间,但有时会失败,mkdir()返回false。mkdir()&mkdirs()返回false

我已经搜索,我得到了像删除前更改目录名称的解决方案。但我没有通过android代码删除目录。删除是由Windows端完成的。

所以,请任何帮助。

 File file = new File(Environment.getExternalStorageDirectory() + File.separator + "eTestifyData" + File.separator + orgId + File.separator + 
       providerId + File.separator + datewise + File.separator + encounterId); 
     if (file.exists()) { 
      write(file, file.getAbsolutePath(), jsonData); 
     } else { 
      if (file.mkdirs()) { 
       write(file, file.getAbsolutePath(), jsonData); 
      } 
     } 
+0

你有权限WRITE_EXTERNAL_STORAGE吗? –

+0

是的,它有时会返回true,但有时候会返回false –

回答

1

从文档https://docs.oracle.com/javase/7/docs/api/java/io/File.html#mkdirs()

返回:当且仅当该目录的创建,以及所有 所需的父目录;否则为假

因此,如果该目录已经存在,它将返回false。

+0

没问题,但是在我的情况下重新调整true和false,当它返回false时,它也会使用orgId创建操作失败的文件夹。 –

+0

我不知道我理解你... –

+0

我创建单一的名称目录在移动通过android和删除是由C#窗口完成。而mkdirs()或mkdir()在windows端完成文件删除后返回false。目录名称与创建次数相同 –