public static File getNewFile(String savePath,String fileName) {
// 判断是否挂载了SD卡
try {
if(isEmpty(savePath)||isEmpty(fileName)) return null;
String storageState = Environment.getExternalStorageState();
if (storageState.equals(Environment.MEDIA_MOUNTED)) {
File savedir = new File(savePath);
if (!savedir.exists()) {
savedir.mkdirs();
}
File out = new File(savePath,fileName);
if (!out.exists())
out.createNewFile();
return out;
}else{
System.out.println("无法保存照片,请检查SD卡是否挂载");
}
} catch (IOException e) {
System.out.println("创建文件失败,请检查权限设置或重启手机");
e.printStackTrace();
}
return null;
}
需要权限:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
6.0系统之后还要动态请求STORAGE权限
之前还遇到一台手机一直创建不了文件,搞了半天也不知道什么回事,创建在new File()一直为空,然后果断重启手机就可以了,真神奇。。。
其实我当时应该先测测内存卡是否挂载或有异常先的,但由于已经好了,也没再遇到这个问题了,那就算了。。。