我在Android应用程序中保存和删除文件时遇到问题。
我通过DownloadManager请求像这样下载文件:
request.setDestinationInExternalFilesDir(v.getContext(),null, item.title + ".mp3");
项。title是一个简单的字符串
文件存放在android/data/com.me.myapp/files目录下。
我随后使用:
删除文件File myFile = new File(item.guid);
myFile.delete();
myFile.delete()返回true。
项目。giud是我从BroadcastReceiver获得的路径,它接收下载管理器的意图
cursor.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME));
在应用程序中访问文件一切正常。
即使我删除文件并调用
File myFolder = getExternalFilesDir(null);
File files[] = myFolder.listFiles();
删除的文件不再出现在files[]中
但是当我打开手机连接到的pc上的文件夹时,我仍然可以看到所有的文件,甚至是删除的文件,文件夹的大小是多个100 mb,即使我的应用程序中的文件[]数组说它是空的。然而,我不能访问(打开,复制)任何文件,其中"删除",因此不出现在文件[]数组在我的应用程序了。我在应用程序中没有删除的文件可以正常工作。
谁能告诉我这里出了什么问题?
自Android 4.0以来,您的PC无法直接访问存储,但可以从缓存存储内容的MediaScanner获取信息。调用此函数通知媒体扫描程序内容已更改:
File file = new File(absolutePath);
Uri uri = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri);
sendBroadcast(intent);