我实现了一个在外部存储中生成和创建文件的应用程序。你能帮助我,我们怎么能删除它?
谢谢你, 钱德拉
编辑-1:我添加了以下代码,但仍然遇到同样的问题,请查看下面的代码,
String fullPath = "/mnt/sdcard/";
System.out.println(fullPath);
try{
File file = new File(fullPath, "audio.mp3");
if(file.exists()){
boolean result = file.delete();
System.out.println("Application able to delete the file and result is: " + result);
// file.delete();
}else{
System.out.println("Application doesn't able to delete the file");
}
}catch (Exception e){
Log.e("App", "Exception while deleting file " + e.getMessage());
}
在LogCat中我得到应用程序能够删除文件,结果是:false 。执行此操作后,我附加了屏幕截图。请仔细看看。并建议我。
答案 0 :(得分:11)
File file = new File(selectedFilePath);
boolean deleted = file.delete();
其中selectedFilePath是您要删除的文件的路径 - 例如:
/sdcard/YourCustomDirectory/ExampleFile.mp3
答案 1 :(得分:3)
这是另一种方法,只需传递您的目录名称即可删除其中的内容
ex "/sdcard/abc/yourdata"
public void deleteFiles(String path) {
File file = new File(path);
if (file.exists()) {
String deleteCmd = "rm -r " + path;
Runtime runtime = Runtime.getRuntime();
try {
runtime.exec(deleteCmd);
} catch (IOException e) {
}
}
}
答案 2 :(得分:3)
尝试使用以下代码删除自动创建的文件,当您不知道它存储在何处时:
public void clearApplicationData() {
File cache = getCacheDir();
File appDir = new File(cache.getParent());
if (appDir.exists()) {
String[] children = appDir.list();
for (String s : children) {
if (!s.equals("lib")) {
deleteDir(new File(appDir, s));
Log.i("TAG",
"**************** File /data/data/APP_PACKAGE/" + s
+ " DELETED *******************");
}
}
}
}
public static boolean deleteDir(File dir) {
if (dir != null && dir.isDirectory()) {
String[] children = dir.list();
for (int i = 0; i < children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
return dir.delete();
}
答案 3 :(得分:3)
我认为您忘记将写入权限放在AndroidManifest.xml文件中,这就是为什么delete()始终返回false。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
答案 4 :(得分:1)
File file = new File(selectedFilePath);
boolean deleted = file.delete();
路径类似于:/mnt/Pictures/SampleImage.png
答案 5 :(得分:1)
public void deleteOnExit ()
计划在VM正常终止时自动删除此文件。
请注意,在Android上,应用程序生命周期不包括VM终止,因此调用此方法将无法确保删除文件。相反,你应该使用最合适的:
使用finally子句手动调用delete()。 维护您自己要删除的文件集,并在应用程序生命周期的适当位置处理它。 所有读者和作者打开文件后立即使用Unix技巧删除文件。没有新的读者/作者可以访问该文件,但所有现有的读者/作者仍然可以访问,直到最后一个文件关闭文件。
答案 6 :(得分:1)
非常简单:
File file = new File(YOUR_IMAGE_PATH).delete();
if(file.exists())
file.delete();
希望它会对你有所帮助。
答案 7 :(得分:1)
尝试此操作将从外部存储中删除文件。
public void deleteFromExternalStorage(String fileName) {
String fullPath = "/mnt/sdcard/";
try
{
File file = new File(fullPath, fileName);
if(file.exists())
file.delete();
}
catch (Exception e)
{
Log.e("App", "Exception while deleting file " + e.getMessage());
}
}