【问题标题】:xamarin form app file not saving on device storagexamarin 表单应用程序文件未保存在设备存储中
【发布时间】:2018-11-23 20:18:19
【问题描述】:

我已经为 signpad 创建了 xamarin 表单应用程序,该应用程序捕获符号并将 png 文件保存到设备存储,但文件未写入存储

这是我将图像转换为字节的代码[]

 var image = await signature.GetImageStreamAsync(SignaturePad.Forms.SignatureImageFormat.Png);//getting png file from here
        var signatureMemoryStream = image as MemoryStream;
        byte[] data = signatureMemoryStream.ToArray();// convert png to bytes[]
        string fileName = "img.png";
        DependencyService.Get<IFileReadWrite>().WriteData(fileName, data);

我已经创建了 DependencyService (Interface) 来保存文件

   public interface IFileReadWrite
   {
          void WriteData(string fileName, byte[] data);
   }

这是我使用 native(app.android) api 保存文件的代码

public class FileHelper : IFileReadWrite
{
    public void WriteData(string filename, byte[] data)
    {
        var documentsPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
        var filePath = Path.Combine(documentsPath, filename);
        File.WriteAllBytes(filePath, data); // this execute without error but file is not saving on path

    }
}

我已经在 mainfest 中获得了 WRITE_EXTERNAL_STORAGE 权限

【问题讨论】:

  • 在您的代码中替换它并尝试: var documentsPath = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath, Android.OS.Environment.DirectoryDownloads);
  • 像魅力一样工作......非常感谢@MShah
  • 太好了,我将此解决方案添加为答案,请将其标记为已接受的答案。

标签: android xamarin xamarin.forms


【解决方案1】:

在你的代码中替换它并尝试:

var documentsPath = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath, Android.OS.Environment.DirectoryDownloads);

希望这可以解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    相关资源
    最近更新 更多