你能从 StreamReader 对象中获取文件路径吗?

Can you get file path from StreamReader object?

是否可以从 StreamReader 对象中获取 StreamReader 构造函数中使用的路径?

        using (StreamReader fileStream = new StreamReader(filePath))
        {
            string path = fileStream.???
        }

StreamReader 通过 BaseStream 属性 公开它正在读取的流。如果 reader 的流是 FileStream,您可以使用它的 Name 属性 来获取文件的路径。

using (StreamReader reader = new StreamReader(filePath))
{
    string path = (reader.BaseStream as FileStream)?.Name;
}

注意:我重命名了变量以防止可能的混淆,因为它是一个 reader 有一个流。

在这个人为的例子中,很明显它是一个 FileStream,但如果你有一个采用 StreamReader.

的方法,则类型测试是必要的

就是说,这样做会导致抽象泄漏。如果您需要知道文件名,您应该明确要求文件名或 FileStream 实例。