TC can't detect file symlinks

The behaviour described in the bug report is either by design, or would be far too complex/time-consuming to be changed

Moderators: white, Hacker, petermad, Stefan2

Post Reply
User avatar
MVV
Power Member
Power Member
Posts: 8702
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

TC can't detect file symlinks

Post by *MVV »

It is more misfeature than bug but...

Internal field "tc.file type" returns "file" for file symbolic links.

Expected "reparse point" value.

Symbolic links may be detected by IO_REPARSE_TAG_SYMLINK reparse point tag. If object has attribute flag FILE_ATTRIBUTE_DIRECTORY set, it is a directory symlink, else it is a file symlink. File symlinks have flag FILE_ATTRIBUTE_REPARSE_POINT set as any other reparse points.

TC detects directory symlinks normally, but file symlinks detected as just files.

To create symlink you may use Windows Vista/7 internal command mklink. For example,
mklink D:\LinkToReadme.txt D:\Docs\Readme.txt
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48088
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

This isn't a bug - "reparse points" are hard links to directories, while symbolic links point to files. The "tc.file type" would need a 4th option "symbolic links", but this would probably break many user's filters...
Author of Total Commander
https://www.ghisler.com
User avatar
MVV
Power Member
Power Member
Posts: 8702
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

I know that it is not a bug (symlinks are new FS feature) but file symbolic link is a reparse point. So, TC should detect it as reparse point. Reparse point may point to any object, not only directory.
File or folder, user may detect via attributes checkbox "Directory", but "tc.file type" should return "reparse point" for all kinds of reparse points.
Post Reply