我一直在努力将文件写入内部存储。我想将文件保存到用户可以看到它并读取文件(例如 Mydocuments)的位置,或者通过为我的应用程序创建一个单独的文件夹(如 Whatsapp 那样)将文件保存到内部存储中。我也想在 iOS 中实现同样的场景。
我怎么做?我已经尝试过 Xamarin.Essentials 中的文件系统助手,也使用了 Environment.SpecialFolder 但似乎没有任何效果。我只是想保存一个简单的文本文件。
我试过的链接..
https://learn.microsoft.com/en-us/xamarin/android/platform/files/
注意:我对外部存储不感兴趣。
您想将数据存储在这些文件夹中吗?
如果是这样,对于android,我做了一个dependencyService来实现它。
例如,我想将.txt
文件写入Download
文件夹。我在 PCL 中创建接口。
public interface IWirteService
{
void wirteFile(string FileName);
}
Run Code Online (Sandbox Code Playgroud)
在pcl按钮点击事件中执行。
private void Button_Clicked(object sender, EventArgs e)
{
DependencyService.Get<IWirteService>().wirteFile("myfile.txt");
}
Run Code Online (Sandbox Code Playgroud)
然后在android平台上实现了。
[assembly: Xamarin.Forms.Dependency(typeof(WirteFileService))]
namespace XamarinFirebase.Droid
{
public class WirteFileService:IWirteService
{
void IWirteService.wirteFile(string FileName)
{
string text = "GFG is a CS portal.";
byte[] data = Encoding.ASCII.GetBytes(text);
string DownloadsPath = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath, Android.OS.Environment.DirectoryDownloads);
string filePath = Path.Combine(DownloadsPath, FileName);
File.WriteAllBytes(filePath, data);
}
}
}
Run Code Online (Sandbox Code Playgroud)
不要忘记添加以下权限并获得运行时权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)
这是正在运行的 GIF。
归档时间: |
|
查看次数: |
11116 次 |
最近记录: |