Xamarin在共享项目中读取文件

时间:2017-02-28 11:11:05

标签: xamarin readfile filenotfoundexception shared-project

我试图在共享项目中读取文件。

        var currentPath = Environment.CurrentDirectory;
        var filename = Path.Combine(currentPath, "File.txt");
        var content = File.ReadAllText(filename);
        return content;

如果我在iOS中启动我的应用程序,这可以正常工作,但在Android中我得到了FileNotFound异常。

1 个答案:

答案 0 :(得分:0)

文件系统结构和底层API因平台而异。 Environment.CurrentDirectory存在于iOS上,但它在Android和UWP上都不存在,因此它将具有空值,因此无法找到该文件。

由于文件系统在不同平台之间存在差异,因此建议您将环境级文件访问代码抽象到特定于平台的项目而不是共享项目 - 尽管您可以使用编译器指令。

#if __ANDROID__
var currentPath = Environment.DataDirectory;
#endif

或者,您可以尝试从Directory.GetCurrentDirectory();方法(在System.IO命名空间中)获取当前目录