我只是试图创建一个目录,寻求所需的权限,包括清单中的权限,但目录仍然没有创建。
下面是我的代码-
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>