【问题标题】:C#: copying Assets on AndroidC#:在 Android 上复制资产
【发布时间】:2021-09-11 01:22:55
【问题描述】:
我尝试使用 Xamarin 开发 Android 应用程序。我构建了 APK,但无法访问保存一些文件夹和文件的资产。
我需要将这些文件夹和文件从 Assets 复制到 Android 设备的应用程序目录中,并且可以随时访问它们。
请帮忙(我需要一个简单的 CSharp 功能,将 Assets 文件复制到 android 设备。我将感谢任何支持。
【问题讨论】:
标签:
c#
android
visual-studio
xamarin.android
assets
【解决方案1】:
您可以先查看File Storage and Access with Xamarin.Android 和Using Android Assets。
这是一个简单的示例:
public static async Task CopyFile(Activity activity)
{
var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "YOUR_FILENAME");
if (!File.Exists(filePath))
{
try
{
using (var fileAssetsStream = activity.Assets.Open("YOUR_FILENAME"))
using (var fileStream = new FileStream(filePath, FileMode.OpenOrCreate))
{
var buffer = new byte[1024];
int b = buffer.Length;
int length;
while ((length = await fileAssetsStream.ReadAsync(buffer, 0, b)) > 0)
{
await fileStream.WriteAsync(buffer, 0, length);
}
}
}
catch (Exception ex)
{
//Handle exceptions
}
}
}
别忘了请求WRITE_EXTERNAL_STORAGEruntime permissions。