I am looking for a simple way to get the size of a softlink file.
The FileInfo class returns 0 bytes everytime.
How can I get the real file size?
Check this link http://blogs.msdn.com/b/oldnewthing/archive/2010/02/12/9962359.aspx
Functions like GetFileAttributes and FindFirstFile, when asked to provide information about a symbolic link, returns information about the link itself and not the link destination. If you use the FindFirstFile function, you can tell that you have a symbolic link because the file attributes will have the FILE_ATTRIBUTES_REPARSE_POINT flag set, and the dwReserved0 member will contain the special value IO_REPARSE_TAG_SYMLINK.
Okay, great, so now I know I have a symbolic link, but what if I want information about the link target?
For example, I want to know the size of the link target, its last-modified time, and its name. To do this, you open the symbolic link. The I/O manager dereferences the symbolic link and gives you a handle to the link destination. You can then call functions like GetFileSize, GetFileInformationByHandleEx, or GetFinalPathNameByHandle to obtain information about the symbolic link target.
Here's some actual code with demo http://www.codeproject.com/KB/vista/ReparsePointID.aspx