設備:AS自帶模擬器Pixel 2 API 25,Lenovo TB-X705M Android8.1.0
delete呼叫了,但回傳false,未出現任何例外。
通過chmod授予了檔案777dwrx權限。
絕對路徑和相對路徑都試過。
rm命令可以洗掉檔案。
public void delFiles(View v) throws IOException {
//Toast.makeText(this,"點擊了洗掉檔案按鈕",Toast.LENGTH_SHORT).show();
//deleteExpiredFile(0,getFilesDir()+"");
String dir = getExternalFilesDir(null).getAbsolutePath() + File.separator + "tmpxxx";
File d = new File(dir);
if (!d.exists())
d.mkdir();
deleteExpiredFile(0,d);
//deleteDirectory(getFilesDir().getAbsoluteFile());
}
/**
* 洗掉超過保存時間的日志檔案
*
* @param day 保存時間
*/
private static void deleteExpiredFile(long day, File dir) {
long currentTime = System.currentTimeMillis();
//File dir = new File(filePath);
if (dir.isDirectory()) {
File[] files = dir.listFiles();
if (files != null && files.length > 0) {
for (File item : files) {
try {
long lastModified = item.lastModified();
if (currentTime - lastModified > day) {
boolean isdelect = item.delete();//洗掉目錄成功
if (isdelect){
Log.d("ff","1111");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
public void deleteDirectory(File file) throws IOException {
if( file.exists() ) {
if (file.isDirectory()) {
File[] files = file.listFiles();
for(int i=0; i<files.length; i++) {
if(files[i].isDirectory()) {
deleteDirectory(files[i]);
}
else {
if (!files[i].delete()){
throw new IOException("failed to the file");
}else{
Log.d("aa","洗掉成功");
}
}
}
}
//file.delete();
}
}
uj5u.com熱心網友回復:
你的那個shell執行類可以發給我看看么uj5u.com熱心網友回復:
你的那個shell執行類可以發給我看看么轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/20388.html
標籤:Android
