private void redirect() {
String userName = edtUserName.getText().toString().trim();
String pwd = edtPwd.getText().toString().trim();
String path = Environment.getExternalStorageDirectory()
.getAbsolutePath()
+ mContext.getString(R.string.dir)+ File.separator;
Log.e("---", "-----"+path);
File dir = new File(path);
if (!dir.exists() || !dir.isDirectory()) {// 如果不存在,新建
dir.mkdirs();
}
path=path+ File.separator +userName;
dir = new File(path);
if (!dir.exists() || !dir.isDirectory()) {// 如果不存在,新建
dir.mkdirs();
}
dir = new File(path+ File.separator +"database" );
if (!dir.exists() || !dir.isDirectory()) {// 如果不存在,新建
dir.mkdirs();
}
path = path + mContext.getString(R.string.file_dir);// 头像路径
dir = new File(path);
if (!dir.exists() || !dir.isDirectory()) {// 如果不存在,新建
dir.mkdirs();
}
path = path + File.separator + "portrait";// 头像路径
dir = new File(path);
if (!dir.exists() || !dir.isDirectory()) {// 如果不存在,新建
dir.mkdirs();
}
}
有的手机就可以创建出来 文件夹,有的手机创建不出文件夹
12 个解决方案
#1
你要判断手机是否有sd卡。
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
mExternalStorageAvailable = mExternalStorageWriteable = true;
}
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
mExternalStorageAvailable = mExternalStorageWriteable = true;
}
#2
1楼正解,先判断是否有sdcard
#3
有些手机,比如小米,插入usb连接到电脑上之后,很容易引起SD卡的挂载。
这样你的程序运行之后,就找不到SD卡了。
所以读写SD卡之前,先判断SD卡的状态。
这样你的程序运行之后,就找不到SD卡了。
所以读写SD卡之前,先判断SD卡的状态。
#4
可是为什么有时候还会把文件夹创建出来呢?
#5
@chencaishengsic @hjq2013 @Jack-sen 那么为什么我的程序有的时候还是会创建出来呢? 还是说这些手机本身就存在这种bug
#6
手机没有sdcard不能称之为bug
#7
我也遇到相同的问题,创建三个文件夹,其中一个无法创建,oppo手机
#8
如果是6.0开发,需要动态请求读写权限,否则无法创建,可以使用以下代码判断是否有权限
if (ContextCompat.checkSelfPermission(PersonInforActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED||ContextCompat.checkSelfPermission(PersonInforActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {请求权限}
if (ContextCompat.checkSelfPermission(PersonInforActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED||ContextCompat.checkSelfPermission(PersonInforActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {请求权限}
#9
要是最低版本是基于4.0的难道也要动态获取权限吗
#10
需不需要权限和你的当前开发targetSdkVersion的版本有关啊,和最低版本无关
#11
第一次不成功,有时需要创建第2、3次就成功了。。别问我为什么
#12
第一次不成功,有时需要创建第2、3次就成功了。。别问我为什么
#1
你要判断手机是否有sd卡。
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
mExternalStorageAvailable = mExternalStorageWriteable = true;
}
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
mExternalStorageAvailable = mExternalStorageWriteable = true;
}
#2
1楼正解,先判断是否有sdcard
#3
有些手机,比如小米,插入usb连接到电脑上之后,很容易引起SD卡的挂载。
这样你的程序运行之后,就找不到SD卡了。
所以读写SD卡之前,先判断SD卡的状态。
这样你的程序运行之后,就找不到SD卡了。
所以读写SD卡之前,先判断SD卡的状态。
#4
可是为什么有时候还会把文件夹创建出来呢?
#5
@chencaishengsic @hjq2013 @Jack-sen 那么为什么我的程序有的时候还是会创建出来呢? 还是说这些手机本身就存在这种bug
#6
手机没有sdcard不能称之为bug
#7
我也遇到相同的问题,创建三个文件夹,其中一个无法创建,oppo手机
#8
如果是6.0开发,需要动态请求读写权限,否则无法创建,可以使用以下代码判断是否有权限
if (ContextCompat.checkSelfPermission(PersonInforActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED||ContextCompat.checkSelfPermission(PersonInforActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {请求权限}
if (ContextCompat.checkSelfPermission(PersonInforActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED||ContextCompat.checkSelfPermission(PersonInforActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {请求权限}
#9
如果是6.0开发,需要动态请求读写权限,否则无法创建,可以使用以下代码判断是否有权限
if (ContextCompat.checkSelfPermission(PersonInforActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED||ContextCompat.checkSelfPermission(PersonInforActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {请求权限}
#10
要是最低版本是基于4.0的难道也要动态获取权限吗
如果是6.0开发,需要动态请求读写权限,否则无法创建,可以使用以下代码判断是否有权限
if (ContextCompat.checkSelfPermission(PersonInforActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED||ContextCompat.checkSelfPermission(PersonInforActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {请求权限}
#11
第一次不成功,有时需要创建第2、3次就成功了。。别问我为什么
#12
第一次不成功,有时需要创建第2、3次就成功了。。别问我为什么