不同的平台對應的檔案系統是不同的,比如檔案路徑,因此 flutter 中獲取檔案路徑需要原生支援,原生端通過 methodchannel 傳遞檔案路徑到 flutter,如果沒有特殊的需求,推薦大家使用 google 官方維護的外掛程式path_provider。
在專案的pubspec.yaml
檔案中新增依賴:
dependencies:
path_provider: ^1.6.14
執行命令:
flutter pub get
path_provider(版本:1.6.14)提供了8個方法獲取不同的檔案路徑,目前 flutter(flutter 1.20.1 • channel stable )只發布了正式版本的 android 和 ios,因此下面僅介紹 android 和 ios 平台的檔案路徑。
如果沒有 android 或者 ios開發經驗,看完上面的說明應該是一臉懵逼的,這麼多路徑到底用哪個?有什麼區別?下面從 android 和 ios 平台的角度介紹其檔案路徑,最後給出路徑使用的建議以及使用過程中需要注意的事項。
android 檔案儲存分為內部儲存和外部儲存。
內部儲存
用於儲存應用的私有檔案,其他應用無法訪問這些資料,建立的檔案在此應用的包名目錄下,沒有root 許可權的手機無法在手機的檔案管理應用中看到此目錄,不過可以通過 android studio 工具檢視,路徑為:data/data/包名:
看下包名下具體的目錄結構:
shared_prefs:sharepreferences的預設路徑。
sharepreferences和sqlite是兩種儲存資料的第三方外掛程式。
內部儲存的特點:
外部儲存
外部儲存可以通過手機的檔案管理應用檢視,
這裡面有乙個特殊的目錄:android/data/包名:
看到這個目錄是不是覺得和內部儲存目錄非常相似,乙個包名代表乙個應用程式:
此目錄的特點:
外部儲存除了android/data/目錄,還有和此目錄同級的目錄,特點:
android 官方對此目錄的管理越來越嚴格,android 11系統已經開始強制執行分割槽儲存,詳情見:
上面說了這麼多,總結如下:
ios 檔案儲存相比 android 要簡單的多,因為 ios 對使用者隱私保護非常嚴格,每個 ios 應用程式都有乙個單獨的檔案系統,而且只能在對應的檔案系統中進行操作,此區域被稱為沙盒。
每個應用沙盒含有3個資料夾:documents, library 和 tmp:
library:對應getlibrarydirectory方法。
preferences:包含應用程式的偏好設定檔案,icloud會備份設定資訊。
tmp:存放臨時檔案,不會被備份,而且這個檔案下的資料有可能隨時被清除的可能,按照官方說法每三天清理一次快取資料。
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';
////// desc:
///class pathproviderdemo extends statefulwidget
class _pathproviderdemostate extends state);
} widget _builddirectory(
buildcontext context, asyncsnapshotsnapshot) ');
} else if (snapshot.hasdata) ');
} else
}return padding(padding: edgeinsets.symmetric(horizontal: 16), child: text);
} widget _builddirectories(
buildcontext context, asyncsnapshot> snapshot) ');
} else if (snapshot.hasdata) else
}return padding(
padding: const edgeinsets.symmetric(horizontal: 16), child: text);
} widget _builditem(string title, futurefuture)
widget _builditem1(string title, future> future)
@override
widget build(buildcontext context)
}
android 系統各個路徑:
ios 系統各個路徑:
Linux 檔案系統目錄
檔案系統時作業系統的重要組成部分,主要負責管理磁碟檔案的輸入輸出。檔案通過目錄方式進行組織,目錄結構是檔案存放在磁碟等儲存裝置上的組織方式,目錄提供了乙個管理檔案的乙個方便而有效的途徑。linux目錄採用多級樹形結構。目錄存放的檔案 bin 放置的是在單使用者模式下也能夠被操作的指令 boot 主要...
linux檔案系統目錄
bin 存放著一百多個linux下常用的命令 工具 dev 存放著linux下所有的裝置檔案 home 使用者主目錄,每建乙個使用者,就會在這裡新建乙個與使用者同名的目錄,給該使用者乙個自己的空間 lost found 顧名思義,一些丟失的檔案可能可以在這裡找到 mnt 外部裝置的掛接點,通常用cd...
Linux檔案系統目錄
目錄樹是倒過來的樹,斜槓 反斜槓 以下常用的linux檔案系統目錄 bin 存放最常用命令 是在單使用者維護模式下還能夠被操作的命令,在 bin下面的命令可以被root和一般賬號使用,主要有cat,chmod,chown,cpmkdir等常用命令。boot 啟動linux的核心檔案 dev 裝置檔案...