android在手机中创建目录文件夹的时候,为什么有的手机可以创建出来有的手机无法创建出?

neverwither 2015-08-31 11:37:40
我在Android应用程序第一次安装开启后,先进入登录activity,登录成功,根据登录人的用户名创建本地文件夹
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();
}
}

有的手机就可以创建出来 文件夹,有的手机创建不出文件夹
...全文
2542 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ganshenml 2017-06-16
  • 打赏
  • 举报
回复
引用 11 楼 qq_34364155 的回复:
第一次不成功,有时需要创建第2、3次就成功了。。别问我为什么
为什么
寒冰大神 2017-06-15
  • 打赏
  • 举报
回复
第一次不成功,有时需要创建第2、3次就成功了。。别问我为什么
RaleighLuo 2017-06-15
  • 打赏
  • 举报
回复
引用 9 楼 yuanbatianxia 的回复:
[quote=引用 8 楼 xiaoluoli88 的回复:] 如果是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) {请求权限}
要是最低版本是基于4.0的难道也要动态获取权限吗[/quote]需不需要权限和你的当前开发targetSdkVersion的版本有关啊,和最低版本无关
天色还不晚 2017-06-12
  • 打赏
  • 举报
回复
引用 8 楼 xiaoluoli88 的回复:
如果是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) {请求权限}
要是最低版本是基于4.0的难道也要动态获取权限吗
RaleighLuo 2017-04-19
  • 打赏
  • 举报
回复
如果是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) {请求权限}
天色还不晚 2017-04-18
  • 打赏
  • 举报
回复
我也遇到相同的问题,创建三个文件夹,其中一个无法创建,oppo手机
Hare_ 2015-09-02
  • 打赏
  • 举报
回复
手机没有sdcard不能称之为bug
neverwither 2015-09-02
  • 打赏
  • 举报
回复
@chencaishengsic @hjq2013 @Jack-sen 那么为什么我的程序有的时候还是会创建出来呢? 还是说这些手机本身就存在这种bug
neverwither 2015-09-02
  • 打赏
  • 举报
回复
可是为什么有时候还会把文件夹创建出来呢?
Hare_ 2015-09-01
  • 打赏
  • 举报
回复
1楼正解,先判断是否有sdcard
chencaishengsic 2015-09-01
  • 打赏
  • 举报
回复
你要判断手机是否有sd卡。 String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { mExternalStorageAvailable = mExternalStorageWriteable = true; }
月盡天明 2015-09-01
  • 打赏
  • 举报
回复
有些手机,比如小米,插入usb连接到电脑上之后,很容易引起SD卡的挂载。 这样你的程序运行之后,就找不到SD卡了。 所以读写SD卡之前,先判断SD卡的状态。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧