Java Android中的file.delete()会留下一个不可读的小文件
我正在尝试从我的图库中删除图像。我正在使用从这里获得的代码:Java Android中的file.delete()会留下一个不可读的小文件,java,android,image,file,Java,Android,Image,File,我正在尝试从我的图库中删除图像。我正在使用从这里获得的代码: 这似乎对某些人有效,但不幸的是对我无效。如果我运行它,一个小的,不可读的文件会留在后面。我使用的是安卓4.1.2 代码如下: public void deleteImage(File fdelete) { //String file_dj_path = Environment.getExternalStorageDirectory() + "/ECP_Screenshots/abc.jpg"; //File fdel
这似乎对某些人有效,但不幸的是对我无效。如果我运行它,一个小的,不可读的文件会留在后面。我使用的是安卓4.1.2 代码如下:
public void deleteImage(File fdelete) {
//String file_dj_path = Environment.getExternalStorageDirectory() + "/ECP_Screenshots/abc.jpg";
//File fdelete = new File(file_dj_path);
if (fdelete.exists()) {
if (fdelete.delete()) {
Log.e("-->", "file Deleted :" + fdelete);
callBroadCast();
} else {
Log.e("-->", "file not Deleted :" + fdelete);
}
}
}
public void callBroadCast() {
if (Build.VERSION.SDK_INT >= 14) {
Log.e("-->", " >= 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.e("ExternalStorage", "Scanned " + path + ":");
Log.e("ExternalStorage", "-> uri=" + uri);
}
});
} else {
Log.e("-->", " < 14");
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://" + Environment.getExternalStorageDirectory())));
}
}
public void deleteImage(文件fdelete){
//字符串文件_dj_path=Environment.getExternalStorageDirectory()+“/ECP_屏幕截图/abc.jpg”;
//File fdelete=新文件(文件路径);
如果(fdelete.exists()){
if(fdelete.delete()){
Log.e(“-->”,删除的“文件:”+fdelete);
callBroadCast();
}否则{
Log.e(“-->”,文件未删除:“+fdelete”);
}
}
}
公共广播{
如果(Build.VERSION.SDK_INT>=14){
Log.e(“-->”,即“>=14”);
MediaScannerConnection.scanFile(此,新字符串[]{Environment.getExternalStorageDirectory().toString()},空,新MediaScannerConnection.OnScanCompletedListener(){
/*
*(非Javadoc)
*@see android.media.MediaScannerConnection.OnScanCompletedListener#onScanCompleted(java.lang.String,android.net.Uri)
*/
已完成的公共void(字符串路径,Uri){
Log.e(“外部存储”,“扫描”+路径+:”);
Log.e(“外部存储”,“->uri=“+uri”);
}
});
}否则{
Log.e(“-->”和“<14”);
sendBroadcast(新意图(意图、行动和媒体),
parse(“文件:/”+Environment.getExternalStorageDirectory());
}
}
如果通过
不可读的小文件
你是说零,你可以这样做:
long fileSize = fdelete.length();
if (fdelete.exists() || fileSize==0){
fdelete.delete();
}
那就做吧
if (fdelete.delete()) {
Log.e("-->", "file Deleted :" + fdelete);
callBroadCast();
} else {
Log.e("-->", "file not Deleted :" + fdelete);
}
你试过这个特别的答案吗?thanx mate,它确实起作用了,但问题是它只起作用了三次,很奇怪,之后我必须重新启动应用程序。