C#:在 Android 上复制资产

Posted

技术标签:

【中文标题】C#:在 Android 上复制资产【英文标题】:C#: copying Assets on Android 【发布时间】:2021-09-11 01:22:55 【问题描述】:

我尝试使用 Xamarin 开发 android 应用程序。我构建了 APK,但无法访问保存一些文件夹和文件的资产。 我需要将这些文件夹和文件从 Assets 复制到 Android 设备的应用程序目录中,并且可以随时访问它们。

请帮忙(我需要一个简单的 CSharp 功能,将 Assets 文件复制到 android 设备。我将感谢任何支持。

【问题讨论】:

【参考方案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。

【讨论】:

以上是关于C#:在 Android 上复制资产的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 android studio 将复制任务运行到资产文件夹中

Android SQLite:W / System.err:java.io.FileNotFoundException无法从资产复制数据库

基于 C# 开发的手机 APP 资产管理项目 SmoSEC | 软件推介

在 Android 中将资产或原始文件或资源文件作为 File 对象读取

为啥我的图像(本地资产或下载的资产)没有在 iOS 14 上显示,而是在使用 ReactNative 0.62.x 的 Android 上显示?

是否可以使用 C# 开发 Android 应用程序? [复制]