
Hello All, As far as I understand Boost.Filesystem assumes that there is no symbolic link support in Windows (is_symlink() always returns false, it is impossible to create, etc.), but only hardlinks (using the CreateHardLink API call). As you probably know, symlinks have been introduced in Vista (NTFS only): the API now includes CreateSymbolicLink and a user is able to create symlinks using mklink and see them using dir. [ http://en.wikipedia.org/wiki/NTFS_symbolic_link]<http://en.wikipedia.org/wiki/NTFS_symbolic_link> However, creating fully functional symbolic links was quite possible already in Windows 2000 on NTFS drives - using junction reparse points. [ http://en.wikipedia.org/wiki/NTFS_junction_point]<http://en.wikipedia.org/wiki/NTFS_junction_point> A junction is created with 2 main API calls: hFile = CreateFile( LinkDirectory, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, NULL ); . . . DeviceIoControl( hFile, FSCTL_SET_REPARSE_POINT, reparseInfo, reparseInfo->ReparseDataLength + REPARSE_MOUNTPOINT_HEADER_SIZE, NULL, 0, &returnedLength, NULL ) . . . A popular free SysInternals' http://www.microsoft.com/technet/sysinternals/FileAndDisk/Junction.mspx tool is usually used to create/list junctions in Win2000, XP, Vista. Its source-code can be found here: http://web.archive.org/web/20060106050745/www.sysinternals.com/Utilities/Jun... [At the Web-Archive, as the source-code has not yet been officially re-released by Microsoft since SysInternals migration to Technet] (There is also another pre-Vista tool - the Microsoft's fsutil)<http://technet2.microsoft.com/windowsserver/en/library/14cb706b-2a38-48e0-a569-a7fa9ca3b3401033.mspx?mfr=true> As far as I understand, junctions behave similar to symbolic links - they point to specific "real" locations not only on the same drive, they can be deleted without deleting the target, they still point to already deleted file/directory, etc. They are even in formal use in Windows Vista: for example, "Documents and Settings" is no longer a directory but a junction pointing to some newly introduced user folder; junctions are supported in the mklink tool and are shown using dir. Maybe it is worth considering to introduce Windows NTFS symlinks support in Boost.FileSystem - a straightforward approach would be to use new symbolic link API for Vista target build and junctions for 2000 and XP. [I am sorry if this subject has already been discussed - I have not found any posts on it] Best Regards, David Sirovsky.