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



我只是试图创建一个目录,寻求所需的权限,包括清单中的权限,但目录仍然没有创建。

下面是我的代码-

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();
}

}

}

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

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 10权限上,这里在manifest中寻求权限有点不同,我们需要在manifest.xml-Android:requestLegacyExternalStorage="真">如下所述-

<application>
android:requestLegacyExternalStorage="true" 
</application>

最新更新