![](/img/trans.png)
[英]xamarin.forms does not contain a definition for 'BeginRefresh()'
[英]Xamarin.Forms Android doesn't contain a definition for Content
我正在尝试在外部存储中创建/打开/写入一个 .txt 文件,但我无法使用“ Android.Content.Context.GetExternalFilesDir ”设置路径。
这是我的确切代码:
string sourceFile = Path.Combine(Android.Content.Context.GetExternalFilesDir(null).AbsolutePath, "myFile.txt");
File.Create(sourceFile);
错误信息是:
Android 不包含 Content 的定义
我应该怎么办?
我不知道如何修改程序集
当然,如果您创建一个 Xamarin.Android 项目,您可以在其中轻松使用 android api。
此外,您还可以使用依赖服务调用平台方法。 您可以查看以下链接,该链接显示了如何使用它来操作 android 文件夹。
链接: Xamarin 表单:如何在设备外部存储中创建文件夹和文件?
然后你需要在AndroidManifest.xml中添加读写外部存储权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
并通过权限请求授予应用程序两个权限。 您可以检查以下情况。
此外,您需要将SaveFile(string fileName)
方法放入 AccessFileImplement 类中。
我仍然在同一点上,这就是我所做的:在Android Project中,我使用此功能创建了一个类“Storage”( Storage.cs ):
public void SaveFile(string fileName)
{
string path = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;
string filePath = System.IO.Path.Combine(path, fileName);
if (!System.IO.File.Exists(filePath))
{
using (System.IO.StreamWriter writer = new System.IO.StreamWriter(filePath, true))
{
writer.WriteLine(DateTime.Now.ToString() + ": " + "Example .txt created using Xamarin.");
}
}
else
{
System.IO.File.Delete(filePath);
using (System.IO.StreamWriter writer = new System.IO.StreamWriter(filePath, true))
{
writer.WriteLine(DateTime.Now.ToString() + ": " + "Example .txt created using Xamarin.");
}
}
}
然后在Forms Project的MainPage.xaml.cs 中,我添加了一个带有以下代码的接口:
public interface IAccessFile
{
void SaveFile(string fileName);
}
然后在主代码的同一个项目( MainPage.xaml.cs )中,我添加了:
DependencyService.Get<IAccessFile>().SaveFile("workingHours.txt");
同样在AndroidManifest.xml中,我添加了权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我没有在我的类 Storage 中的 Android 项目中添加的唯一代码(在函数之前)是:
[assembly: Xamarin.Forms.Dependency(typeof(AccessFileImplement))]
namespace XamarinFirebase.Droid
{
public class AccessFileImplement : IAccessFile
因为即使使用 using 也不起作用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.