1

我想加载我的解决方案中存在的 xml 文档 Swedish.xml。我如何在 Xamarin.android 中给出该文件的路径

在此处输入图像描述

我正在使用以下代码:

 var text = File.ReadAllText("Languages/Swedish.txt");
 Console.WriteLine("text: "+text);

但我收到异常消息:

 Could not find a part of the path "//Languages/swedish.txt".

我什至尝试了以下几行:

 var text = File.ReadAllText("./Languages/Swedish.txt");

 var text = File.ReadAllText("./MyProject/Languages/Swedish.txt");

 var text = File.ReadAllText("MyProject/Languages/Swedish.txt");

但他们都没有工作。出现相同的异常消息。Build Action 也设置为 Content。路径有什么问题?提前致谢。

4

4 回答 4

1

试试这个

 string startupPath = Path.Combine(Directory.GetParent(System.IO.Directory.GetCurrentDirectory()).Parent.Parent.FullName, "Languages", "Swedish.txt");

 var text = File.ReadAllText(startupPath);
于 2013-10-01T07:02:01.050 回答
0

如果您将文件标记为内容类型,它将包含在应用程序包中,其中包含您在项目文件中使用的路径。您可以检查创建的 IPA 文件(它只是一个重命名的 zip)以验证是否发生了这种情况。

var text = File.ReadAllText("Languages/Swedish.txt");

应该管用。文件路径是相对于应用程序的根目录的。您需要确保在代码中使用与实际文件使用的完全相同的大小写。在模拟器中大小写无关紧要,但在设备上文件系统区分大小写,不匹配的大小写会破坏应用程序。

于 2013-08-24T17:37:11.683 回答
0

我以前研究过这个,从来没有找到任何以这种方式访问​​文件的解决方案。所有的道路似乎都表明将它们构建为“内容”是一条死胡同。但是,您可以将它们放在“资产”文件夹中并以这种方式使用它们。为此,将“内容”切换为“AndroidAsset”。

完成此操作后,您现在可以通过调用它来访问您的应用程序中的文件

var filename = "Sweedish.txt";
string data;
using
  (var sr = new StreamReader(Context.Assets.Open(code)))
            data = sr.ReadToEnd();
 ....
于 2013-10-01T06:50:04.907 回答
0

尝试...

Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments)+"/Languages/Swedish.txt"
于 2013-08-24T17:19:45.080 回答