[英]Xamarin Android save files, Environment.Specialfolder does not exist
[英]Xamarin.Forms.Android: Populating 'Environment.SpecialFolder.Personal' with sample data files at compilation/deployment
我的應用程序記錄來自患者監視器的數據,並將其存儲在“Environment.SpecialFolder.Personal”中的“*.dat”文件中。
該應用程序還允許用戶“回放”以前獲得的錄音。
我希望在 apk 中包含一些示例“dat”文件。 是否可以在項目中包含“資產”等文件,並在安裝時將它們復制到“Environment.SpecialFolder.Personal”?
將數據庫復制到 Assets 文件夾中。
並將 Build Action 設置為 AndroidAssect。
您可以使用以下代碼將文件從 Assects 文件夾復制到 Android Application 文件夾。
// Android application default folder.
var appFolder = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
var dbFile = Path.Combine(appFolder, "database.db3");
// Check if the file already exists.
if (!File.Exists(dbFile))
{
using (FileStream writeStream = new FileStream(dbFile, FileMode.OpenOrCreate, FileAccess.Write))
{
// Assets is comming from the current context.
await Assets.Open(databaseName).CopyToAsync(writeStream);
}
}
從下面的鏈接下載源文件。 https://github.com/damienaicheh/CopyAssetsProject
更新:
您可以使用下面的代碼。
var assetName = "someasset.jpg";
var outputName = Path.Combine(Android.OS.Environment.DirectoryDownloads,
assetName);
using (var assetStream = context.Assets.Open(assetName))
using (var fileStream = new FileStream(outputName, FileMode.CreateNew))
{
await assetStream.CopyToAsync(fileStream);
}
如果您的設備高於 Android6.0,則需要運行時權限。 https://docs.microsoft.com/en-us/samples/xamarin/monodroid-samples/android-m-runtimepermissions/
欲知更多詳情,請參閱以下鏈接。 如何在我的設備上保存資產中的文件? Xamarin
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.