【问题标题】:Getting Original Path from FileStream从 FileStream 获取原始路径
【发布时间】:2010-11-13 00:46:53
【问题描述】:

给定一个System.IO.FileStream 对象,我怎样才能获得它提供访问权限的文件的原始路径?

例如,在下面的MyStreamHandler()函数中,我想取回创建FileStream的文件的路径:

public static void Main() 
{
    string path = @"c:\temp\MyTest.txt";
    FileStream fs = File.Create(path));

    MyStreamHandler(fs);
    MyOtherStreamHandler(fs);

    fs.Close();
    fs.Dispose();
}

private static void MyStreamHandler(FileStream fs)
{
    // Get the originating path of 'fs'
} 

private static void MyOtherStreamHandler(FileStream fs)
{
}

【问题讨论】:

    标签: c# path filestream .net


    【解决方案1】:

    FileStream 的 Name 属性。

    请参阅MSDN 中的文档

    【讨论】:

    • 感谢您回答显然是 RTFM 类型的问题。我确实做到了,但对我来说,Name 找到了路径并不明显。
    • 我不想这么说,但是当您拥有 StackOverflow 时,为什么还要阅读手册呢?通过使用该技术的人提供的示例,查找起来要快得多。
    • @AdrianCarr 因为手册中有示例,而答案没有?
    • 仅供参考:如果绝对路径未知,则此属性返回类似于“[Unknown]”的字符串。使用 SafeFileHandle 实例化 FileStream 时就是这种情况。
    【解决方案2】:

    您可以使用 fs.Name 来获取路径。

    【讨论】:

      【解决方案3】:

      使用 FileInfo-Class 获取路径。

      var fileStream = File.OpenRead(fileName);
      var fileInfo = new FileInfo(fileName);
      
      Settings.Default.ThePath = fileInfo.DirectoryName;
      Settings.Default.Save();
      

      【讨论】:

        猜你喜欢
        • 2010-11-02
        • 2013-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-17
        • 2021-08-21
        • 2016-06-02
        • 1970-01-01
        • 2014-06-26
        相关资源
        最近更新 更多