Flutter 获取操作系统的相关目录

10 min read

包地址

https://pub.dev/packages/path_provider

支持的系统目录

Temporary
Application Support
Application Library
Application Documents
External Storage
External Cache Directories
External Storage Directories
Downloads

  • getTemporaryDirectory:设备上未备份的临时目录的路径,适合存储下载文件的缓存,此目录随时可以清除。iOS 上对应 NSCachesDirectory获取的目录,Android 对应 getCacheDir。
  • getApplicationSupportDirectory:应用程序可以在其中放置应用程序支持文件的目录的路径。

将此选项用于不希望暴露给用户的文件。你的应用不应该使用此目录存放用户数据文件。iOS 等同于 NSApplicationSupportDirectory API 获取,并且如果该目录不存在,则自动创建。 Android 等同于 getFilesDir这个目录。

  • getLibraryDirectory:应用程序可以存储持久文件的目录,备份文件以及对用户不可见的文件的目录路径,例如sqlite.db。在 Android 上,此函数抛出 UnsupportedError 异常,没有等效的路径存在。
  • getApplicationDocumentsDirectory:应用程序可能放置数据的目录的路径或应用程序无法重新创建的数据的目录路径。在iOS上,对应NSDocumentDirectory API。如果数据不是用户生成的,考虑使用getApplicationSupportDirectory。在Android上,对应getDataDirectory API。 如果要让用户看到数据,请考虑改用getExternalStorageDirectory
  • getExternalStorageDirectory:应用程序可以访问顶级存储的目录的路径。由于此功能仅在Android上可用,因此应在发出此函数调用之前确定当前操作系统。在iOS上,此功能会引发UnsupportedError异常,因为无法在应用程序的沙箱外部访问。在Android上,对应getExternalFilesDir(null)
  • getExternalCacheDirectories:存储特定于应用程序的外部缓存数据的目录的路径。 这些路径通常位于外部存储(如单独的分区或SD卡)上,此功能只能在Android上访问。
  • getExternalStorageDirectories:可以存储应用程序特定数据的目录的路径。 这些路径通常位于外部存储(如单独的分区或SD卡)上。 由于此功能仅在Android上可用。
  • getDownloadsDirectory:存储下载文件的目录的路径,这通常仅与台式机操作系统有关。 在Android和iOS上,此函数将引发UnsupportedError异常。