当我尝试从/data/data/com.mycompany.appname/files/mydir/
删除文件时,我遇到了问题。
我有以下代码:
class MyClass extends android.content.ContextWrapper;
//...
private void delete() {
String file = getFilesDir() + "/" + (getString(R.string.directory_logs) + "/" + selectedLogFile).substring(1);
file = file.replaceAll("/", File.separator);
//here the value of file is:"/data/data/com.mycompany.appname/files/mydir/my_file.log"
if (FileOperation.delete(file)) {
//Do something if deleting was successfull
}
}
FileOperation.delete()
方法是:
public static boolean delete(String fileOrDirectory) {
return delete(new File(fileOrDirectory));
}
public static boolean delete(File fileOrDirectory) {
if (fileOrDirectory.isDirectory()) {
for (File child : fileOrDirectory.listFiles()) {
delete(child);
}
}
return fileOrDirectory.delete();
}
FileOperation.delete()
的答案总是错误的。
我尝试调用ContextWrapper.deleteFile(file)
而不是我的删除方法,但它会抛出IllegalArgumentException并显示以下消息:
文件/data/data/com.mycompany.appname/files/mydir/my_file.log包含路径分隔符
你能帮我解决一下如何删除目录中的文件吗?
答案 0 :(得分:0)
您可以尝试以下内容:
File x = new File(path_to_file);
if ( x.delete() ) ...
此外,您无需将“/”替换为文件分隔符。可以让它像“/”
一样答案 1 :(得分:0)
这是一个奇怪的错误,但是
如果你有根电话,并非所有用户都有。