PDA

Показать полную графическую версию : StreamReader как от него получить filename?


RUVATA
26-08-2010, 10:47
Всем доброго времени суток :)
Visual Studio 2010 /// vb.NET

некий новый экземпляр StreamReader...
Dim MetaRead As StreamReader = New StreamReader("D:\TodayBackup.txt")

как от него получить имя читаемого им файла, позицию и.т.д ведь это свойства ***Stream
а StreamReader - это интерфейс - он почти не имеет свойств одни методы

RUVATA
26-08-2010, 11:17
вот скрин

RUVATA
26-08-2010, 13:51
Сам и разобрался...

StreamReader - это вспомогательный класс, предоставляющий удобный интерфейс для чтения текстовых данных из потока данных. Источником(потоком) данных является объект System.IO.Stream и именно его читает ридер. Stream представляет обобщенный интерфейс доступа к данным, то есть с его помощью можно читать(записывать) данные, находящиеся не только в файле, но так же в памяти, сети и т. д. Поэтому это абстрактный класс и работать приходится по сути с производными классами, такими как FileStream, MemoryStream, NetSrteam и др.
StreamReader считывает данные одинакова хорошо из любого потока, но когда ты создаешь экземпляр этого класса, передавая конструктору строку с именем файла, то сначала создается FileStream, который в дальнейшем и читается.

А подобраться к свойствам FileStream можно при помощи
DirectCast (Представляет тип операции преобразования на основе наследования или реализации)

вот так можно получит имя файла от экземпляра StreamReader

... = DirectCast(имя экземпляра.BaseStream, System.IO.FileStream).Name




© OSzone.net 2001-2012