我正在写两个文件夹之间的同步操作。
首先,目标文件夹将删除其所有.bmp文件。 接下来,源文件夹中的.bmp文件将被复制到目标文件夹
我目前正处于第一步,尝试删除目标文件夹上的所有.bmp文件。
当我使用file.delete()
时,在手机的文件浏览器中查看时,该文件将被删除。
但当我通过我的电脑查看时,文件仍然在里面。
我已经尝试过将usb线重新插入手机。删除的文件仍在那里。
任何想法都错了吗?
继承人我所做的事情:
private void getBMPfiles() {
Log.d("getBMPFiles", "sourcePath is: " + targetPath);
File targetDirector1 = new File(targetPath);
File[] files = targetDirector1.listFiles();
for (File file : files){
String filename=file.getAbsolutePath();
if(filename.endsWith(".bmp")){
Log.i("deleting: ",filename);
file.delete();
}
}
}
答案 0 :(得分:0)
你可以尝试
void deletAllFile() {
String[] myFiles;
File extStorageDirectory = Environment.getExternalStorageDirectory();
File file = new File(extStorageDirectory, "targertfolder");
if (file.isDirectory()) {
myFiles = file.list();
for (int i = 0; i < myFiles.length; i++) {
File myFile = new File(file, myFiles[i]);
myFile.delete();
}
}
}
答案 1 :(得分:0)
delete方法返回Boolean,首先检查它是否返回true。如果它返回false,到目前为止我已经看到,如果没有将SD卡设置为内部存储器,如果有人知道从SD卡中删除的方法,则无法使用绝对路径从SD卡中删除文件以上KitKat随时纠正我。要删除文件,最好使用Uri with Documentfile或DocuementContract类删除方法
答案 2 :(得分:0)
感谢greenapps和Fatih Ozcan,
我已将代码更改为
private void getBMPfiles() {
Log.d("getBMPFiles", "sourcePath is: " + targetPath);
File targetDirector1 = new File(targetPath);
File[] files = targetDirector1.listFiles();
for (File file : files){
String filename=file.getAbsolutePath();
if(filename.endsWith(".bmp")){
Log.i("deleting: ",filename);
boolean delCheck = file.delete();
if (delCheck==true){
Log.d("getBMPFiles", "Deleted: " + dfilename);
}
else if(delCheck==false){
Log.d("getBMPFiles", "error deleting: " + dfilename);
}
}
}
}