[英]Android.OS.Environment… which namespace?
我想将一些数据保存到 Anroid 设备的存储(内部/外部)中。 我找到了这篇文章,他们在其中获得了带有以下行的外部存储路径:
var sdCardPath = Android.OS.Environment.ExternalStorageDirectory.Path;
看起来很公平。 但我的 Visual Studio 说了以下内容:
当前上下文中不存在名称“Android”
所以我一直想知道这个Android
驻留在哪个命名空间中? 我尝试了很多(例如 AutoImport,但这似乎给了我错误的父级;或者按 F1 获取此处建议的文档),但没有弄清楚如何让它工作。 我必须获得哪个 NuGet-Package 才能获得此 function。 还是我做错了什么?
这是 AutoImport 给我的命名空间:
Xamarin.Forms.PlatformConfiguration.Android.OS.Environment.ExternalStorageDirectory.Path;
但随后它告诉我 Android 没有OS
成员。 经过检查,我发现Xamarin.Forms.PlatformConfiguration.Android
根本没有成员,所以它下面没有任何成员。 我的Xamarin.Forms
被贬低了吗? 根据我的 NuGet-Packagemanager 的说法,一切都是最新的。
这些是我的项目使用的 NuGet 包:
Xamarin.Essentials
Xamarin.Forms
OxyPlot.Core
OxyPlot.Xamarin.Forms
只需在此处输入答案,我们就可以关闭此问题...
您尝试做的问题是您需要了解关注点/抽象是分离的。 核心项目被 Android 和 iOS 项目引用,但 Android 和 Z1BDF605991920DB11CBDF8508 项目没有被核心项目引用EBZ 示意性地,
Core-->Android & Core-->iOS
但Core<-x-Android, Core<-x-iOS
这是设计使然,即使您可以让它做您正在尝试的事情,但您不应该这样做。
我们知道 iOS 和 Android SDK 非常不同。 因此,为了获取路径/文件名,您必须在下面执行不同的功能。 您共享的代码是仅针对 Android 本地检索路径/文件名的正确方法。
In order to make it work for both iOS & Android, Xamarin Forms provides us with an abstraction layer that takes care of everything underneath for us, and allows us to use this:
string filePath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
var fileName=Path.Combine(filePath,".");
还有许多其他方法可以执行此操作,如此处的Microsoft 官方文档中所示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.