지나간 일자의 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 |