我已经通过编程方式在SD卡中创建了一个文件夹和一些JSON文件,它创建文件夹和文件没有问题,但它只显示在移动文件目录中,在将我的手机连接到系统后它没有显示在系统中。如果我在移动设备中复制并粘贴相同的文件夹,那么它将在系统中显示尚未显示的复制文件夹仅原始文件夹。作为参考,我添加了我的移动和系统目录图像。
here in mobile original and copied folders are showing
here only copied folder only showing
同样的,我在SD卡中的一些音乐文件,我试图删除的那个。
path =(sdcard文件路径) 文件SongFile =新文件(路径); songFile.delete();
此功能可在SD卡上正确删除文件。 但是在我的系统中删除后,它显示我是否尝试播放它显示一些错误。此删除的文件未正确删除。删除后,我在我的应用程序中以编程方式获取相同的文件。
在我的应用程序中还显示已删除的文件名称和详细信息。
答案 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!";
}
}