【问题标题】:xamarin iOS content filesxamarin iOS 内容文件
【发布时间】:2013-09-19 01:43:03
【问题描述】:

在 Xamarin iOS 应用程序中,我需要随应用程序提供示例文本文件。当我运行单元测试以验证读取时,我收到找不到文件的错误。我尝试了多个位置来放置文件并将操作设置为嵌入式资源和内容,并且在所有情况下我都会收到未找到的错误。

首先应该将嵌入到应用程序中的文件放置在何处以包含在内。二、如何访问文件,什么路径?

【问题讨论】:

    标签: iphone ios xamarin.ios xamarin


    【解决方案1】:

    我可能会选择嵌入式资源,但是您需要以不同的方式访问它。更多信息在这里:

    https://developer.xamarin.com/guides/xamarin-forms/working-with/files/

    基本上你需要使用反射来获取Assembly,然后用正确的ID调用它的GetManifestResourceStream方法。

    【讨论】:

      【解决方案2】:

      您应该能够将文件放在项目的根目录或任何子文件夹中。请务必将文件标记为“内容”。要读取它,只需使用任何 C# 文件 IO 操作,例如:

      string text = System.IO.File.ReadAllText("test.txt");
      
      or 
      
      string text = System.IO.File.ReadAllText("path/test.txt");
      

      路径将相对于您的应用程序包的根目录,因此您不需要使用绝对路径。

      请注意:确保路径和文件名的大小写正确。在模拟器中这无关紧要,因为 OS X 文件系统通常不区分大小写。但是iOS是区分大小写的,所以在设备上运行时,大小写错误会导致异常。

      【讨论】:

      • 我同意这应该可行。但是,当我运行单元测试时,它告诉我在 UnitTest/bin/Debug/Samples/sample.txt 中找不到文件,我将文件放在 Samples 文件夹中。我已将库项目中的示例文件夹链接到单元测试项目。
      • 我会重申 Jason 提到的“确保将文件标记为‘内容’”位。过去这让我很伤心。
      • 做到了。此时我正在进行单元测试,并在尝试运行测试时出现错误。它在单元测试文件夹中查找 UnitTest/bin/Debug/Samples/sample.txt。在调试编译期间文件实际放在哪里?我已经搜索了驱动器,除了我在源中放置初始文件的位置之外,它没有出现在任何地方。
      • 老实说,当您在 DLL 中有内容文件时,我不确定应该是什么行为。您可能应该使用 Xamarin 打开一个错误 - 这可能是预期的行为,也可能是一个错误。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      • 2013-05-19
      • 2011-08-18
      • 1970-01-01
      • 2017-08-10
      相关资源
      最近更新 更多