我在Android应用中保存和删除文件时遇到问题。
我通过DownloadManager请求下载文件,如下所示:
request.setDestinationInExternalFilesDir(v.getContext(),null, item.title + ".mp3");
其中item.title是一个简单的String。
文件存储在android / data / com.me.myapp / files下。
我稍后使用以下命令删除文件:
File myFile = new File(item.guid);
myFile.delete();
myFile.delete()返回true。
item.giud是我从实现的BroadcastReceiver获得的路径,它接收Downloadmanager意图
cursor.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME));
访问应用程序中的文件,一切正常。
即使我删除文件并调用
File myFolder = getExternalFilesDir(null);
File files[] = myFolder.listFiles();
已删除的文件不再出现在文件[]中。
但是当我打开手机连接的电脑上的文件夹时,我仍然可以看到所有文件,即使是已删除的文件,文件夹的大小也是多个100 mbs甚至是我的文件[]数组app说空了。但是,我无法访问(打开,复制)删除"删除的任何文件。因此不再出现在我的应用程序中的files []数组中。我没有在应用程序中删除的文件工作正常。
谁能告诉我这里有什么问题?
答案 0 :(得分:1)
从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);