是否可以从 StreamReader 对象中获取 StreamReader 构造函数中使用的路径?
using (StreamReader fileStream = new StreamReader(filePath))
{
string path = fileStream.???
}
最佳答案
StreamReader
通过 BaseStream
属性公开它正在读取的流。如果读取器的流是 FileStream
,您可以使用其 Name
属性来获取文件的路径。
using (StreamReader reader = new StreamReader(filePath))
{
string path = (reader.BaseStream as FileStream)?.Name;
}
注意:我重命名了变量以防止可能的混淆,因为它是一个具有流的阅读器。
在这个人为设计的示例中,很明显它是一个 FileStream
,但如果您有一个采用 StreamReader
的方法,则类型测试是必要的。
就是说,这样做会导致抽象泄漏。如果您需要知道文件名,您应该明确要求文件名或 FileStream
实例。
关于c# - 你能从 StreamReader 对象中获取文件路径吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55150472/