【问题标题】:Getting a path of a Stream by converting to FileStream通过转换为 FileStream 获取 Stream 的路径
【发布时间】:2013-08-15 17:12:46
【问题描述】:

我需要获取流中原始文件的路径。

我读到我需要使用 FileStream 的“Name”属性来获取它的路径。
到目前为止一切顺利。

问题是我有一个常规的 System.IO.Stream 而不是 FileStream,因此我没有“Name " 属性。

我读到有一个 Stream.CopyTo 方法:http://msdn.microsoft.com/en-us/library/dd782932.aspx

我打算像这样将我的 Stream 转换为 FileStream

System.IO.FileStream fileStream = new System.IO.FileStream(?????);
using (stream)
{
    stream.CopyTo(fileStream);
}  

但是 FileStream 没有无参数的构造函数。

我该如何解决?

【问题讨论】:

  • @RohitVats 不是。问题是相同的,但他得到了一个不同的解决方案,将其转换为 FileStream,这对我不起作用。阅读答案!!!!我敢打赌,你是反对者,也是建议结束问题的人!

标签: c# stream filestream


【解决方案1】:

假设 Stream 是 FileStream 的一个实例,您可以将 Stream 转换为 FileStream:

var fileStream = stream as FileStream;

您能够从 Stream 实例中获取路径名的唯一方法是,如果您能够将其转换为提供访问路径方式的类。

【讨论】:

  • 成功了!!但这是一种安全的方式吗?它不能压碎什么的?我应该期待什么?
  • 如果 Stream 实例始终是 FileStream 那么它是完全安全的;如果 fileStream 不是 FileStream 的实例,则它将为 null,因此如果您不能确定,请检查它
【解决方案2】:

获取流的路径

System.IO.FileStream Stream = ....;
FileStream fs = stream as FileStream;
if (fs != null)
{
    // now you can check its path
}
else
{
    // you cant check its path
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-13
    • 2021-12-05
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    相关资源
    最近更新 更多