在android的sd卡中能创建文件但是不能创建文件夹怎么解决

时间:2021-01-17 12:30:41
各位高烧怎么在sd卡中能创建文件就是不能创建文件夹呢?权限我全加上了
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

public static void checkedAndSaveFile(String fileName,String data,String path){
InputStream inputStream = new java.io.ByteArrayInputStream(StringUtil.fromBase64(data));
String savePath = path.trim();
savePath = savePath.replace("\\", "/");
String saveFileName = fileName.trim();
String saveFilePathAndName = savePath+File.separator+saveFileName;
Log.i("dir======================>", saveFilePathAndName);
saveFilePathAndName=saveFilePathAndName.trim();
File newFile = new File(saveFilePathAndName);
File fileDir = new File(savePath);
if(!fileDir.exists()){
fileDir.mkdir();
}
//
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()    +      File.separator + "test.txt");
try {
file.createNewFile();
} catch (IOException e1) {
e1.printStackTrace();
}
//
if(!newFile.exists())
try {
newFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
if(checkSDCard()){
save(saveFilePathAndName, inputStream, newFile);
}
}

public static void save(String fileName,InputStream inputStream,File file){

FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
byte[] buffer = new byte[512];
int len;
int downloader = 0;
while ((len = inputStream.read(buffer)) != -1) {
fos.write(buffer, 0, len);
downloader += len;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
fos.flush();
fos.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

5 个解决方案

#1


if(!fileDir.exists()){
 fileDir.mkdir();
 }

fileDir.mkdirs();

#2


如果目录的上一级目录不存在的话,mkdir()会失败
要确保创建目录成功,最好使用 mkdirs()来创建

#3


该回复于2012-08-15 13:32:32被版主删除

#4


引用 2 楼 RDroid 的回复:
如果目录的上一级目录不存在的话,mkdir()会失败
要确保创建目录成功,最好使用 mkdirs()来创建
恩人啊!

#5


终于找到问题所在了 感谢楼主

#1


if(!fileDir.exists()){
 fileDir.mkdir();
 }

fileDir.mkdirs();

#2


如果目录的上一级目录不存在的话,mkdir()会失败
要确保创建目录成功,最好使用 mkdirs()来创建

#3


该回复于2012-08-15 13:32:32被版主删除

#4


引用 2 楼 RDroid 的回复:
如果目录的上一级目录不存在的话,mkdir()会失败
要确保创建目录成功,最好使用 mkdirs()来创建
恩人啊!

#5


终于找到问题所在了 感谢楼主