首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在安卓系统的SdCard根目录下新建文件夹?

如何在安卓系统的SdCard根目录下新建文件夹?
EN

Stack Overflow用户
提问于 2018-10-25 19:58:33
回答 1查看 1.3K关注 0票数 0

我想在SdCard的根目录或主页中创建一个新文件夹。我已经使用此方法来获取SdCard位置:

代码语言:javascript
运行
复制
File("/storage/sdcard1", "New folder")

但这种方法在某些设备上不起作用。我需要一个在所有设备上工作的方法,并获得SdCard的位置。

我也尝试过:

代码语言:javascript
运行
复制
File(Environment.getExternalStorageDirectory(),"New folder")

但是这种方法以设备存储为目标。但我想要SdCard。

EN

回答 1

Stack Overflow用户

发布于 2018-10-25 20:11:15

当您想要创建文件夹时,运行以下代码行:

代码语言:javascript
运行
复制
startActivityForResult(new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE), 42);

从出现的对话框中选择您的SD卡。关闭对话框后,将调用以下方法,您可以在其中创建您的目录。

代码语言:javascript
运行
复制
@Override 
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
       switch (requestCode) {
                            // Check for the integer request code originally supplied to startResolutionForResult().
          case 42:

             if (resultCode != RESULT_OK)  return;

             if(data != null) { 
             Uri treeUri = data.getData();
             grantUriPermission(getPackageName(), treeUri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);                               
             getContentResolver().takePersistableUriPermission(treeUri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
             DocumentFile pickedDir = DocumentFile.fromTreeUri(this, treeUri );
             DocumentFile myDirectory =  pickedDir.createDirectory("MyDirectory");
            }
          break;

       default:  break;
    }
}

PS1: 42是我使用的一个随机数。如果您喜欢,可以选择任何唯一的正整数,而不是42。最好将其设置为常量。

PS2:在onActivityResult中,您可以将treeUri值保存到一些变量、数据库等中,以便每次您需要在SD根目录中创建更多文件夹或文件时,都可以随时使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52988749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档