2012-12-19 60 views

回答

13

除非您想要创建结构中的每个文件夹,否则不会使用mkdirs()。尽量不要在字符串的末尾添加额外的斜线,并查看是否有效。

例如

final File newFile = new File("/mnt/sdcard/test"); 
newFile.mkdir(); 
+2

我已经在最后尝试了2个斜杠,它的工作原理,谢谢! – arts777

+0

没有指向所有Android设备(KitKat)上的真实SD卡的“/ mnt/sdcard”。 我也试过在最后使用“/ storage/external_SD/Android/data//files/dummy //”的两个斜杠技巧,它现在创建了一个在Windows上可见的目录文件,但是dummy仍然是文件。与ES3都是目录。对我来说足够好:)) – Zekitez

0

尝试使用所有的

String rootPath=Environment.getExternalStorageDirectory().getAbsolutePath()+"/test/"; 
      File file=new File(rootPath); 
if(!file.exists()){ 
file.mkdirs(); 
} 
0

首先你不应该使用“到/ mnt/SD卡/测试”文件路径,这可能会导致一些问题一些Android手机。改为使用:

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()); 
} 
+0

>>首先你不应该使用“/ mnt/sdcard/test”的文件路径>>没关系,因为它是示例代码。实际上,它是文件管理器的一部分,我试图用用户定义的路径创建目录。所以,我不使用实际代码中的硬编码“/ mnt/sdcard /”路径。 – arts777

+0

在这种情况下足够公平。 – Max

7

当我需要确保对文件中的所有迪尔斯存在,但我只有文件路径 - 我做

new File(FileName.substring(0,FileName.lastIndexOf("/"))).mkdirs(); 
相关问题