Flutter 實戰 檔案系統目錄

2021-10-09 13:34:06 字數 3358 閱讀 9461

不同的平台對應的檔案系統是不同的,比如檔案路徑,因此 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的預設路徑。

sharepreferencessqlite是兩種儲存資料的第三方外掛程式。

內部儲存的特點:

外部儲存

外部儲存可以通過手機的檔案管理應用檢視,

這裡面有乙個特殊的目錄: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 裝置檔案...