10

我使用以下代码:

final File newFile = new File("/mnt/sdcard/test/");
newFile.mkdir(); // if I use mkdirs() result is the same

它会创建一个空文件!为什么?

4

4 回答 4

19

除非您希望创建结构中的每个文件夹,否则您不会使用 mkdirs()。尝试不要在字符串末尾添加额外的斜杠,看看是否有效。

例如

final File newFile = new File("/mnt/sdcard/test");
newFile.mkdir();
于 2012-12-19T13:47:49.540 回答
7

当我需要确保文件的所有目录都存在,但我只有文件路径时 - 我有

   new File(FileName.substring(0,FileName.lastIndexOf("/"))).mkdirs();
于 2014-09-25T06:47:43.147 回答
2

首先你不应该使用带有“/mnt/sdcard/test”的文件路径,这可能会导致一些安卓手机出现问题。改用:

public final static String APP_PATH_SD_CARD = "/Test";

String fullPath = Environment.getExternalStorageDirectory().getAbsolutePath() + APP_PATH_SD_CARD;

自从您添加破折号后,它会创建一个空文件。

现在您有了路径,请使用以下代码:

try {
    File dir = new File(fullPath);
    if (!dir.exists()) {
         dir.mkdirs();
    }
}
catch(Exception e){
    Log.w("creating file error", e.toString());
}
于 2012-12-19T13:57:01.710 回答
1

尝试使用

    String rootPath=Environment.getExternalStorageDirectory().getAbsolutePath()+"/test/";
            File file=new File(rootPath);
if(!file.exists()){
file.mkdirs();
}
于 2012-12-19T13:54:02.643 回答