Flutter 시작: 파일 경로

아름다운 이미지를 다운로드했고 이제 스스로에게 묻고 있습니다. 어디에 저장해야 할까요? 이 튜토리얼은 파일 시스템에서 일반적으로 사용되는 위치에 대한 액세스를 제공하는 path_provider 패키지를 발견할 것입니다. path_provider는 iOS, Android, Linux 및 MacOS를 지원하지만 2개의 모바일 플랫폼에 중점을 둘 것입니다.

지원 서류 디렉토리




Directory appDocDir = await getApplicationDocumentsDirectory();
String appDocPath = appDocDir.path;

Directory applicationSupportDir = await getApplicationSupportDirectory();
String appSupportPath = applicationSupportDir.path;


이 디렉토리를 사용하여 사용자 생성 콘텐츠를 배치합니다. iOS에서는 NSDocumentDirectory를 사용하고 Android에서는 컨텍스트에서 getDataDirectory API를 사용합니다.
데이터가 사용자 생성이 아닌 경우 iOS에서는 NSApplicationSupportDirectory를 사용하고 Android에서는 컨텍스트에서 getFilesDir API를 사용하는 애플리케이션 지원 디렉토리를 사용해야 합니다.

임시 디렉토리



Directory tempDir = await getTemporaryDirectory();
String tempPath = tempDir.path;

이 디렉토리를 사용하여 임시 데이터(캐시, 임시 다운로드 파일)를 저장합니다. 이 디렉토리는 백업되지 않으며 시스템에 저장 공간이 필요한 경우 해당 내용이 삭제될 수 있습니다.
iOS에서는 NSCachesDirectory API를 사용합니다. Android에서는 컨텍스트에서 getCacheDir API를 사용합니다.

외부 저장소 디렉토리



if (Platform.isAndroid) {
  Directory externalStorage = await getExternalStorageDirectory();
  String externalStoragePath = externalStorage.path;
}

이 기능을 사용하여 외부 저장소 디렉터리를 검색합니다.
이 디렉토리는 Android에서만 사용할 수 있으며(iOS에서 이 함수를 호출하려고 하면 UnsupportedError 발생) getExternalFilesDir(null) 를 사용합니다.



파일 경로와 디렉토리를 다룰 때 유용할 또 다른 패키지는 물론 path package 입니다. 파일 및 디렉토리 경로를 조작하는 간단한 명령을 제공합니다. 여기에 몇 가지 예가 있습니다.

import 'package:path/path.dart' as p;

...
// Creates a path for a file in a directory
p.join('directory', 'file.txt');
// Splits the path in its components
List<String> pathComponents = p.split(path);


보시다시피 패키지는 접두사(가져오기 후 코드에서 "as p")를 사용하여 가져오도록 되어 있으므로 p.function()과 함께 해당 기능을 사용합니다.
join 함수는 경로를 파일 이름과 결합하는 데 사용되며 파일의 전체 경로를 반환합니다.
split 함수는 반대 작업을 수행하고 하위 구성 요소에서 경로의 다양한 구성 요소를 분할하므로 이 경로 "/test/directory/filename"은 ["test", "directory", "filename"문자열 목록이 됩니다. ]

경로 패키지는 경로 또는 확장자에서 파일 이름을 추출해야 하는 경우 매우 유용합니다.

String dirName = p.dirname(path);
String baseName = p.basename(path);
String extension = p.extension(file_path);


예를 들어 이 경로 "/test/directory/filename.txt"를 사용하는 경우 위의 코드는 다음을 생성합니다.
디렉토리 이름 =/테스트/디렉토리
기본 이름 = 파일 이름.txt
확장자 = txt

좋은 웹페이지 즐겨찾기