android source

deleteOldLogFiles()

리오파파 2019. 7. 23. 12:47

지나간 일자의 log directory 지우기

 

refer to KeepItSilent.apk

 

DeleteOld.java

package better.life.maze2pdf;

import android.util.Log;

import java.io.File;
import java.text.Collator;
import java.text.SimpleDateFormat;
import java.util.Locale;

public class DeleteOld {

    final String FORMAT_DATE = "yy-MM-dd";

public DeleteOld(String downloadFolder, String folder, Strine prefix, long backTime) {
        final SimpleDateFormat sdfDate = new SimpleDateFormat(FORMAT_DATE, Locale.US);
        String oldDate = prefix
                + sdfDate.format(System.currentTimeMillis() - backTime);
        File[] filesAndFolders = new File(downloadFolder, folder).listFiles();
        if (filesAndFolders != null) {
            Collator myCollator = Collator.getInstance();
            for (File oneFile : filesAndFolders) {
                if (oneFile.isFile()) {
                    String shortFileName = oneFile.getName();
                    if (shortFileName.startsWith(prefix) &&
                            myCollator.compare(shortFileName, oldDate) < 0) {
                        if (!oneFile.delete())
                            Log.e("file", "Delete Error " + oneFile);
                    }
                }
            }
        }
    }
}

 

mainActivity에서 권한획득 필요

if (!Environment.isExternalStorageManager()) {
    Intent intent = new Intent();
    intent.setAction(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
    Uri uri = Uri.fromParts("package", this.getPackageName(), null);
    intent.setData(uri);
    startActivity(intent);
}

 

manifest에 정의 필요

 

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
    tools:ignore="ScopedStorage"/>



   <application
    . . .
    . . .
        android:requestLegacyExternalStorage="true"
 	. . .

'android source ' 카테고리의 다른 글

sleep  (0) 2019.07.28
vibratePhone()  (0) 2019.07.23
view에 box 두르기  (0) 2019.07.23
readyPackageFolder(), 특정 폴더 만들기  (0) 2019.07.23
getDirectoryFiltered()  (0) 2019.07.23