当前位置: 首页 > 知识库问答 >
问题:

即使在寻求存储权限后也不会创建目录

红富
2023-03-14
public class MainActivity extends AppCompatActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if(haveStoragePermission()) {

        File new_folder = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "Images");
        if (!new_folder.exists()) {
            new_folder.mkdirs();
            boolean k=   new_folder.mkdirs();
         if (k)
         {
          Toast.makeText(this,"Directory created successfully",Toast.LENGTH_LONG).show();
         }
         else Toast.makeText(this,"Failed to create directory",Toast.LENGTH_LONG).show();

        }
        
    }


}

共有1个答案

钱锦
2023-03-14

问题不是关于文件下载。问题是您没有访问存储的权限。请检查错误。

Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)

所以似乎无法创建文件。您可能需要检查是否具有写入存储的权限。如果您不想请求该权限,可以在内部存储中创建文件。

你应该这样叫它

if(haveStoragePermission()) {
    DownloadTask downloadTask = new DownloadTask();
    downloadTask.execute("https://www.popwebdesign.net/popart_blog/wp-content/uploads/2018/01/tiny-png-panda.jpg");
}
 类似资料:
  • 我有问题在Android Studio中创建外部存储的新目录。它可能必须做一些有权限的事情,但据我所知,一切似乎都很好。 我想做的是: 检查目录“/storage/emulated/0/Recordings”是否存在,如果不存在-创建目录 检查文件“/storage/simulated/0/Recordings/tempFile.raw”是否存在,如果存在-将其删除 使用“new FileOutp

  • 我有一个针对SDK28的Android应用程序,所以我有处理的权限。我检查是否设置了,但当Exoplayer尝试读取文件(我验证该文件确实存在)时,我看到 com.google.android.exoplayer2.upstream.filedatasource$filedatasourceException:java.io.fileNotfoundexception:/storage/emula

  • 创建目录权限 如果你想创建一个目录并授予777权限,你需要怎么做?查看Go的API文档我们可以这样写。 源文件为mkdir.go。 package main import ( "fmt" "os" ) func main() { err := os.MkdirAll("/tmp/gotest/", 0777) if err != nil { panic(er

  • 我分配一个角色权限来创建数据库。相同的角色被分配给登录用户,但是当我试图使用分配角色的登录用户创建新数据库时,我得到权限拒绝错误。 无法执行语句。权限拒绝,数据库主,所有者dbo。运行此命令需要以下权限:CREATE DATABASE。赛贝斯错误代码=10331严重级别=14,状态=3,事务状态=0第1行 我用15.5分和16分试了一下。我做错什么了吗?我们需要考虑其他参数吗?我经历了这次讨论 h

  • 我对Android Studio和Android编程都很陌生。我刚刚读了关于第一个common Intent教程的内容,它是关于。我试着编写一个简单的代码来测试这个意图,但是抛出的无效,堆栈跟踪如下所示: 05-20 15:36:25.010 2342-2342/com。维法隆。helloandroid E/AndroidRuntime:致命异常:主进程:com。维法隆。helloandroid,

  • 编辑:此处不允许的消息不再显示。 我正在使用Volley访问google books,api是IcecreamSandwich。即使包括对清单文件的权限,我仍然会得到关于权限的异常。我已经读了一些已回答的问题(这个,这个)。当光标指向时,表示此处不允许使用该标记。我该如何解决问题呢? logcat: