繁体   English   中英

Android:从公共外部存储中删除文件

[英]Android : Delete file from public external storage

我正在尝试从外部存储上的公共目录(图片,电影,下载等)中删除文件。 我在SO上找到了一些类似的问题,但是没有一个答案对我有用。

这是代码:

File file = new File("/storage/emulated/0/Pictures/IMG_20131107_142745.jpg");
if (file.exists() && file.canWrite()) {
    file.delete()
}

删除的文件实际上不再在我的应用程序中可见,但是我仍然可以在笔记本电脑上使用MTP看到它。 但是,它似乎是损坏的文件,我无法打开它。 摆脱它的唯一方法是手动删除文件或重新启动智能手机。

当我使用Android设备监视器浏览内容时,它在模拟器上可以正常运行

您需要使用MediaScannerConnection扫描文件:

MediaScannerConnection.scanFile(
            context, 
            new String[]{fileToDelete, fileToAdd},
            null, null); 

删除后请尝试此代码。

(对于<KITKAT API 14)

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, 
Uri.parse("file://" +  Environment.getExternalStorageDirectory())));

对于> = KITKAT API 14,请使用以下代码

MediaScannerConnection.scanFile(this, new String[] { Environment.getExternalStorageDirectory().toString() }, null, new MediaScannerConnection.OnScanCompletedListener() {
        /*
         *   (non-Javadoc)
         * @see android.media.MediaScannerConnection.OnScanCompletedListener#onScanCompleted(java.lang.String, android.net.Uri)
         */
        public void onScanCompleted(String path, Uri uri) 
          {
              Log.i("ExternalStorage", "Scanned " + path + ":");
              Log.i("ExternalStorage", "-> uri=" + uri);
          }
        });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM