如何正确删除SD卡中的音乐文件以及如何创建新文件?

时间:2017-06-27 08:20:18

标签: android

我已经通过编程方式在SD卡中创建了一个文件夹和一些JSON文件,它创建文件夹和文件没有问题,但它只显示在移动文件目录中,在将我的手机连接到系统后它没有显示在系统中。如果我在移动设备中复制并粘贴相同的文件夹,那么它将在系统中显示尚未显示的复制文件夹仅原始文件夹。作为参考,我添加了我的移动和系统目录图像。

here in mobile original and copied folders are showing

here only copied folder only showing

同样的,我在SD卡中的一些音乐文件,我试图删除的那个。

  

path =(sdcard文件路径)   文件SongFile =新文件(路径);   songFile.delete();

此功能可在SD卡上正确删除文件。 但是在我的系统中删除后,它显示我是否尝试播放它显示一些错误。此删除的文件未正确删除。删除后,我在我的应用程序中以编程方式获取相同的文件。

在我的应用程序中还显示已删除的文件名称和详细信息。

1 个答案:

答案 0 :(得分:0)

我怀疑您没有从Media Store中删除该条目,这就是您仍然可以看到它的原因。

  • 获取_id条目的data ContentResolver参数 _id
  • 使用上述public void deleteFromMediaStore(Context context, String pathToDelete) { ContentResolver contentResolver = context.getContentResolver(); if (contentResolver != null) { Cursor matchingIndex = contentResolver.query(Media.EXTERNAL_CONTENT_URI, new String[]{"_id", "_data"}, "_data = ?", new String[]{pathToDelete}, null); if(matchingIndex != null && matchingIndex.getCount() > 0) { matchingIndex.moveToFirst(); while (!matchingIndex.isAfterLast()) { context.getContentResolver().delete(ContentUris.withAppendedId(Media.EXTERNAL_CONTENT_URI, (long) matchingIndex.getInt(matchingIndex.getColumnIndex("_id"))), null, null); matchingIndex.moveToNext(); } matchingIndex.close(); } } }
  • 删除条目

这是一个片段:

@SpringBootApplication
@Configuration
@RestController
@ServletComponentScan
public class Application {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }

    @RequestMapping("/")
    public String home() {
        System.out.println("test");
        return "Hello World!";
    }

}