Я ищу простой способ получить размер файла softlink.
Класс FileInfo возвращает 0 байтов каждый раз.
Как узнать реальный размер файла?
Проверьте эту ссылку http://blogs.msdn.com/b/oldnewthing/archive/2010/02/12/9962359.aspx
Функции, такие как GetFileAttributes и FindFirstFile, когда их просят предоставить информацию о символической ссылке, возвращает информацию о сама ссылка, а не место назначения ссылки. Если вы используете Функция FindFirstFile, вы можете сказать, что у вас есть символическая ссылка потому что атрибуты файла будут иметь Установлен флаг FILE_ATTRIBUTES_REPARSE_POINT и член dwReserved0 будет содержать специальное значение IO_REPARSE_TAG_SYMLINK. Хорошо, отлично, теперь я знаю, что у меня есть символическая ссылка, но что, если я хочу получить информацию о цели ссылки? Например, я хочу узнать размер цели ссылки, время ее последнего изменения и ее имя. к Сделав это, вы откроете символическую ссылку. Менеджер ввода / вывода разыменовывает символическая ссылка и дает вам ссылку на ссылку назначения. Вы можете затем вызвать такие функции, как GetFileSize, GetFileInformationByHandleEx или GetFinalPathNameByHandle для получения информации о символической ссылке цель.
Функции, такие как GetFileAttributes и FindFirstFile, когда их просят предоставить информацию о символической ссылке, возвращает информацию о сама ссылка, а не место назначения ссылки. Если вы используете Функция FindFirstFile, вы можете сказать, что у вас есть символическая ссылка потому что атрибуты файла будут иметь Установлен флаг FILE_ATTRIBUTES_REPARSE_POINT и член dwReserved0 будет содержать специальное значение IO_REPARSE_TAG_SYMLINK.
Хорошо, отлично, теперь я знаю, что у меня есть символическая ссылка, но что, если я хочу получить информацию о цели ссылки?
Например, я хочу узнать размер цели ссылки, время ее последнего изменения и ее имя. к Сделав это, вы откроете символическую ссылку. Менеджер ввода / вывода разыменовывает символическая ссылка и дает вам ссылку на ссылку назначения. Вы можете затем вызвать такие функции, как GetFileSize, GetFileInformationByHandleEx или GetFinalPathNameByHandle для получения информации о символической ссылке цель.
Вот пример кода с демо http://www.codeproject.com/KB/vista/ReparsePointID.aspx
Вам нужно открыть файл и узнать его размер через функцию GetFileSize.