我使用以下代码:
final File newFile = new File("/mnt/sdcard/test/");
newFile.mkdir(); // if I use mkdirs() result is the same
它会创建一个空文件!为什么?
除非您希望创建结构中的每个文件夹,否则您不会使用 mkdirs()。尝试不要在字符串末尾添加额外的斜杠,看看是否有效。
例如
final File newFile = new File("/mnt/sdcard/test");
newFile.mkdir();
当我需要确保文件的所有目录都存在,但我只有文件路径时 - 我有
new File(FileName.substring(0,FileName.lastIndexOf("/"))).mkdirs();
首先你不应该使用带有“/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());
}
尝试使用
String rootPath=Environment.getExternalStorageDirectory().getAbsolutePath()+"/test/";
File file=new File(rootPath);
if(!file.exists()){
file.mkdirs();
}