【问题标题】:Android : Delete file from public external storageAndroid:从公共外部存储中删除文件
【发布时间】:2016-05-02 12:57:52
【问题描述】:

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

代码如下:

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

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

当我使用 Android 设备监视器浏览内容时,它在模拟器上运行良好

【问题讨论】:

标签: android file


【解决方案1】:

你需要使用MediaScannerConnection来扫描文件:

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

【讨论】:

    【解决方案2】:

    删除后试试这个代码..

    (对于

    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);
              }
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多