Android에서 임시 파일 만들기
안드로이드에서 임시 파일을 만드는 가장 좋은 방법은 무엇입니까?
파일.생성 가능TempFile을 사용하시겠습니까?그 문서는 그것에 대해 매우 모호합니다.
특히, 임시 파일이 언제 만들어졌는지는 명확하지 않습니다.File.createTempFile
삭제됩니다.
일반적으로 다음 작업을 수행합니다.
File outputDir = context.getCacheDir(); // context being the Activity pointer
File outputFile = File.createTempFile("prefix", ".extension", outputDir);
그들의 삭제에 대해서도 저는 완전히 확신할 수 없습니다.캐시 구현에 이 기능을 사용하기 때문에 캐시 디렉터리 크기가 미리 설정된 값으로 떨어질 때까지 가장 오래된 파일을 수동으로 삭제합니다.
일부 데이터를 영구적으로 저장하는 대신 캐시하려면
getCacheDir()
응용 프로그램이 임시 캐시 파일을 저장해야 하는 내부 디렉터리를 나타내는 파일을 엽니다.장치의 내부 저장 공간이 부족하면 Android는 공간을 복구하기 위해 이러한 캐시 파일을 삭제할 수 있습니다.그러나 이러한 파일을 정리하기 위해 시스템에 의존해서는 안 됩니다.캐시 파일은 항상 사용자가 직접 관리해야 하며 1MB와 같은 적절한 공간 제한 내에 있어야 합니다. 사용자가 응용 프로그램을 제거하면 이러한 파일이 제거됩니다.
캐시 파일을 저장해야 하는 외부 저장소 디렉터리를 나타내는 파일을 열려면,
getExternalCacheDir()
사용자가 응용프로그램을 제거하면 이러한 파일이 자동으로 삭제됩니다.와 유사한
ContextCompat.getExternalFilesDirs()
위에서 언급한 바와 같이, 당신은 또한 2차 외부 스토리지의 캐시 디렉토리에 접근할 수 있습니다(가능한 경우).ContextCompat.getExternalCacheDirs()
.팁: 파일 공간을 보존하고 앱의 성능을 유지하려면 캐시 파일을 주의 깊게 관리하고 앱의 수명 주기 동안 더 이상 필요하지 않은 파일을 제거하는 것이 중요합니다.
임시 내부 파일의 경우 두 가지 옵션이 있습니다.
1.
File file;
file = File.createTempFile(filename, null, this.getCacheDir());
2.
File file
file = new File(this.getCacheDir(), filename);
두 옵션 모두 응용 프로그램 캐시 디렉토리에 파일을 추가하므로 필요에 따라 공간을 확보하기 위해 지울 수 있지만 옵션 1은 파일을 고유하게 유지하기 위해 파일 이름 끝에 임의의 숫자를 추가합니다.또한 다음과 같은 파일 확장자를 추가합니다..tmp
기본적으로 두 번째 매개 변수를 사용하여 원하는 값으로 설정할 수 있습니다.난수를 사용하는 것은 파일 이름을 지정했음에도 불구하고 접미사/파일 확장자와 함께 숫자가 추가되므로 동일하게 유지되지 않는다는 것을 의미합니다..tmp
예를 들어, 을 "" " " " " " " " " " " " 로 지정합니다.internal_file
로나니다로 .internal_file1456345.tmp
확장자를 지정할 수 있지만 추가할 수 있는 숫자는 지정할 수 없습니다.그러나 생성된 파일 이름은 다음을 통해 찾을 수 있습니다.file.getName();
그러나 파일을 삭제하거나 읽기 위해 언제든지 사용할 수 있도록 파일을 어딘가에 저장해야 합니다.따라서 지정한 파일 이름이 생성된 파일 이름이기 때문에 두 번째 옵션을 선호합니다.
context.getCacheDir()를 사용하여 cachedir를 사용할 수 있습니다.
File temp=File.createTempFile("prefix","suffix",context.getCacheDir());
당신은 할 수 .File.deleteOnExit()
방법
https://developer.android.com/reference/java/io/File.html#deleteOnExit()
https://developer.android.com/reference/java/io/File.html#createTempFile(java.lang 에서 참조할 수 있습니다.문자열, java.lang.String, java.io .파일)
간단하게 하세요.설명서에 따르면 https://developer.android.com/training/data-storage/files
String imageName = "IMG_" + String.valueOf(System.currentTimeMillis()) +".jpg";
picFile = new File(ProfileActivity.this.getCacheDir(),imageName);
사용 후 삭제합니다.
picFile.delete()
언급URL : https://stackoverflow.com/questions/3425906/creating-temporary-files-in-android
'source' 카테고리의 다른 글
content-Type: application/js를 node.js와 함께 게시합니다. (0) | 2023.08.15 |
---|---|
NHibernate로 대량 삽입 작업 속도 향상 (0) | 2023.08.10 |
Android 수행 표시줄 제목 및 아이콘을 변경하는 방법 (0) | 2023.08.10 |
인쇄 문으로 저장 프로시저를 디버깅하는 방법은 무엇입니까? (0) | 2023.08.10 |
jQuery - 보이지 않을 때 요소 너비 가져오기(표시:없음) (0) | 2023.08.10 |