Xamarin.Forms.Android:Populating';Environment.SpecialFolder.Personal';在编译/部署时使用示例数据文件
我的应用程序记录来自患者监护仪的数据,并将其存储在“Environment.SpecialFolder.Personal”中的“*.dat”文件中 该应用程序还允许用户“回放”以前获得的录音Xamarin.Forms.Android:Populating';Environment.SpecialFolder.Personal';在编译/部署时使用示例数据文件,android,file,xamarin.forms,android-assets,Android,File,Xamarin.forms,Android Assets,我的应用程序记录来自患者监护仪的数据,并将其存储在“Environment.SpecialFolder.Personal”中的“*.dat”文件中 该应用程序还允许用户“回放”以前获得的录音 我希望在apk中包含一些示例“dat”文件。是否可以将此类文件作为“资产”包含在项目中,并在安装时将其复制到“Environment.SpecialFolder.Personal”中?将数据库复制到资产文件夹中 并将构建操作设置为AndroidAssect 您可以使用以下代码将文件从Assects文件夹
我希望在apk中包含一些示例“dat”文件。是否可以将此类文件作为“资产”包含在项目中,并在安装时将其复制到“Environment.SpecialFolder.Personal”中?将数据库复制到资产文件夹中 并将构建操作设置为AndroidAssect 您可以使用以下代码将文件从Assects文件夹复制到Android应用程序文件夹
// 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);
}
}
从下面的链接下载源文件。
更新:
您可以使用下面的代码
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,则需要运行时权限。
有关更多详细信息,请参阅下面的链接。
是的。只需在应用启动时将它们从资产复制到您的文件夹中即可。我刚刚找到了相同的解决方案!我想你怎么能告诉我如何将资产(文件)复制到Xamarin表单(Android)中的外部SD卡?有更新吗?你的问题解决了吗?如果答案对你有帮助,别忘了接受答案。