簡體   English   中英

存儲在應用程序文檔目錄中的文件始終存在,盡管尚未創建(Flutter)

[英]File stored in app document directory always exists although it hasn't been created (Flutter)

我目前正在使用 flutter 開發一個移動應用程序,我想顯示用戶及其朋友的個人資料圖片。 圖片存儲在 Firebase 存儲中,但是為了盡量減少請求的數量,我想將每個圖像加載一次,然后將其存儲在本地。 我寫了一個 function 從 Firebase 存儲中獲取圖像並將其存儲在應用程序文檔目錄中,但我無法弄清楚如何執行 ZC1C425268E68385D1AB5074C17A94F14 只有當本地文件不存在時。

這是我的代碼的摘錄

 Future<File?> getProfilePic(String? uid) async { Directory appDocumentsDirectory = await getApplicationDocumentsDirectory(); String filepath = "${appDocumentsDirectory.path}/profiles/$uid.jpg"; if (await File(filepath).exists()) { return File(filepath); } else { var success = await downloadFromFirebaseAndSaveToLocal( "profilepic/$uid.jpg", filepath); if (success) { getProfilePic(uid); } } return null; }

不知何故,if 語句 (await File(filepath).exists()) 的條件始終為真。 我想這是有道理的。 我認為該文件存在於目錄中但沒有任何內容。

有誰知道如何檢查文件是否有內容? 正常的 null 檢查不起作用。

感謝您的幫助!

要檢查文件的大小,您可以

if (File(filepath).lengthSync() != 0)

或者

您可以await文件。 長度()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM