【发布时间】: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