【问题标题】:How to create a new file from a FileStream?如何从 FileStream 创建一个新文件?
【发布时间】:2010-03-02 19:50:45
【问题描述】:

我有一个 javascript 文件作为程序集中的嵌入资源,我正在尝试使用来自“System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("someName");”的流创建一个新的 FileInfo 对象。我的困惑是如何使用流来创建 FileInfo。如果有人能在这方面帮助我,我将不胜感激。我敢肯定这可能很容易,但通常我似乎总是想念容易。

【问题讨论】:

  • @jhorton:您需要更具体地说明您正在尝试做什么以及为什么需要 FileInfo 或相信一个与您的 Stream 相关联。

标签: c# filestream fileinfo


【解决方案1】:

你不能。因为您有一个 Stream,并且 FileStream 继承自 Stream,所以这并不意味着所有 Stream 实例都是 FileStream 实例(并且通过扩展,具有作为 Stream 源的文件)。

话虽如此,从调用返回的 Stream 没有任何意义 GetManifestResourceStream 会有一个与之关联的 FileInfo,就像 NetworkStream 也没有与之关联的 FileInfo 实例一样。

【讨论】:

    【解决方案2】:

    你必须创建文件,然后读取资源流,然后写入文件流。

    【讨论】:

    • 那么我想使用类似 File.Create("pathToFolder") 的东西来创建新文件。然后使用 Writer 将流写入文件。
    • 或者只是做你自己的 inputStream.Read / outputStream.Write 循环。
    • 所以写成功后澄清一下。我必须为 EmbeddedResource 流使用 StreamReader,为新的 FileStream 使用 StreamWriter。非常基本的技能似乎从我隐喻的破裂玻璃中泄露出来。
    【解决方案3】:

    如果您确实需要 FileInfo,那么您可能必须将数据从嵌入式资源复制到文件系统上的文件中。 This question 有一些示例代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-12
      • 1970-01-01
      • 2012-06-17
      相关资源
      最近更新 更多