【问题标题】:Xamarin Forms - Create Accessible Folder acessible to anyoneXamarin Forms - 创建任何人都可以访问的可访问文件夹
【发布时间】:2020-03-08 12:14:21
【问题描述】:

我正在尝试创建一个任何人都可以访问的文件夹。 当我尝试使用

获取外部存储目录时
var path= Android.OS.Environment.ExternalStorageDirectory.ToString();

我看到了错误:

Android does not contain a definition for 'OS'.

谁能帮帮我?

谢谢。

【问题讨论】:

  • 尝试摇晃你的包裹:Step 1. Project > Update NugetPackages Step 2. Build > Clean All Step 3. Build > Build All
  • 谢谢,但这不起作用。可能是因为我的项目类型?我的项目是 Android -> Android Xaml App。
  • 看来问题出在我的项目类型上。我的项目是 Android XAML App (Xamarin Forms)。命名空间 Android.OS 仅在项目 Android App (Xamarin) 中可用。有办法解决吗?

标签: android xamarin.forms


【解决方案1】:

看来问题出在我的项目类型上。我的项目是 Android XAML App (Xamarin Forms)。命名空间 Android.OS 仅在项目 Android App (Xamarin) 中可用。有办法解决吗?

您可以创建一个dependency service 以在表单上获取它。

Xamarin.Forms DependencyService 介绍:

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/dependency-service/introduction

创建接口:

 public interface IDpendencyService
{
    string GetExternalStorage();
}

Android 项目上的实现可能是这样的:

public class DependencyImplementation : IDpendencyService
{
    public string GetExternalStorage()
    {
        var path = Android.OS.Environment.ExternalStorageDirectory.ToString();
        return path;
    }
}

不要忘记在 MainActivity.cs 中注册:

Xamarin.Forms.DependencyService.Register<IDpendencyService, DependencyImplementation>();

在 Xamarin.forms 中的用法:

  private void Button_Clicked(object sender, EventArgs e)
    {
        var path = DependencyService.Get<IDpendencyService>().GetExternalStorage();
    }

【讨论】:

  • 非常感谢您的帮助:)
【解决方案2】:

在 Xamarin.Forms、iOS 和 Android 中。你可以这样做:

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

如果你想获得一个可以存储临时缓存的 TempFolder:

Path.GetTempPath()

请注意,如果您要访问外部存储,您可能需要在 Android 清单文件中拥有一些权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

已经有一些很好的答案可以更详细地解释: What is the best Environment.SpecialFolder for store application data in Xamarin.Forms?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    相关资源
    最近更新 更多