【问题标题】:file IO and preprocessors in Windows runtime componentWindows 运行时组件中的文件 IO 和预处理器
【发布时间】:2013-06-14 13:18:59
【问题描述】:

我是使用 C# 的新手。我正在使用 Visual Studio 2012 在 C# 中创建一个 Windows 运行时组件。 我想使用文件操作,如写入和读取。 使用文件 IO 的普通语法(我们在普通形式应用程序中使用的一种)如:

String text = System.IO.File.ReadAllText(@actualOutputFileName);

似乎不起作用。我也尝试过使用像#ifdef 这样的预处理器。那些也不行。谁能提供我可以阅读这些东西的链接。我已经参考了这个链接:http://msdn.microsoft.com/en-us/library/windows/apps/br230301.aspx

我遇到的最接近的是与 Windows 商店应用程序兼容的这段代码:

StorageFolder storageFolder = KnownFolders.PicturesLibrary;
StorageFile sampleFile = await storageFolder.GetFileAsync("id.txt");
                liveid = await FileIO.ReadTextAsync(sampleFile);

谁能帮帮我。提前致谢。

【问题讨论】:

  • 尝试阅读此链接 - 它应该包含一些您可以使用的信息。 Quickstart: Reading and writing a file
  • 文件读取请看这里:stackoverflow.com/questions/12703816/…
  • 谢谢!你能告诉我为什么普通 IO (System.IO.File.ReadAllText(@actualOutputFileName)) 不起作用吗? @马修·沃森
  • 这是因为 WRC 应用就像在沙箱中运行的浏览器应用(Android 应用也是如此)。不允许 WRC 应用程序在自己的特殊文件存储之外写入文件。
  • 可以同步吗?我的意思是我们可以手动完成吗? @马修·沃森

标签: c# windows-runtime


【解决方案1】:

Microsoft 正在强制 Windows 应用商店应用程序开发人员异步执行所有 I/O,以便 UI 不会被慢速同步 I/O 阻塞。同步 I/O 方法被全部禁止。

对于System.IO.File.ReadAllText,微软suggest 使用Windows.Storage.PathIO.ReadTextAsync

在 C# 中,要进行条件编译,请使用 #if

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    相关资源
    最近更新 更多