我一直在制作一个从互联网下载文件的应用程序并保存存储我有2个问题:首先如何解决它将它们保存在downlod文件夹中,这是确切的地址?第二,这是" /data/user/0/com.example.moein.download_kotlin/files/Downloads/file.jpg"它现在正在使用的目录? 这是我的代码
mainFetch = Fetch.Builder(applicationContext, "Download 1 file")
.setDownloadConcurrentLimit(1) .
.enableLogging(true)
.build()
//Single enqueuing example
val request = Request("https://www.sample-videos.com/img/Sample-jpg-image-50kb.jpg",
applicationContext.getFilesDir().getPath().toString() +"/Downloads/file.jpg")
request.priority=Priority.HIGH;
request.networkType=NetworkType.ALL
request.addHeader("download", "2")
mainFetch!!.enqueue(request, object : Func<Download> {
override fun call(t: Download) {
Toast.makeText(applicationContext,t.file,Toast.LENGTH_SHORT).show();
//toasts /data/user/0/com.example.moein.download_kotlin/files/Downloads/file.jpg
}
}, object : Func<Error> {
override fun call(t: Error) {
Toast.makeText(applicationContext,t.toString(),Toast.LENGTH_SHORT).show();
}
})`
答案 0 :(得分:1)
首先如何处理它以将它们保存在downlod文件夹中 确切地址?
使用以下内容:
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
如果您要定位Andrpid 6.0及更高版本,请记住请求WRITE_EXTERNAL_STORAGE
写入此目录,并READ_EXTERNAL_STORAGE
从此目录中读取。用户需要授予这些权限,因此您必须实现权限模型。您可以按照此official tutorial来实现此目的。
第二个在哪里 &#34; /data/user/0/com.example.moein.download_kotlin/files/Downloads/file.jpg" 它现在正在使用的目录?
这是您的特定于应用程序的目录。保存到此文件的文件对您的应用是私有的,其他应用无法访问它们(除非用户具有root访问权限,否则用户也无法访问)。这使得内部存储成为用户不需要直接访问的内部应用数据的好地方。
但是我在三星设备上发现ES文件浏览器可以访问此目录。但是他们如何设法做到这一点很神秘。