why does syncthing not..sync files?

It’s not that easy to detect.

If you ask windows to give you info about file aaa/bbb/xxx, it will return the info and the name will be set to that. Yet actual file name might be aAA/bBb/xXx. The only way to find the real name is to list the every directory up to the file and try to match the filename.

You can enumerate all hard links with FindFirstFileNameW+FindNextFileNameW and select one equal (case insensitively) to original path without drive latter.

Sure, but you have to do that for every path component, which is insane.

ya, it was more wishful thinking that anything else. sometimes windows is really dumb.

I think you mistaken FindFirstFileNameW with FindFirstFileW. FindFirstFileNameW get you full path (without drive letter) with only one API call (most files have only one hard link).

instead of detecting for the case difference in the filesystem, would there be a way to detect behavior in syncthing itself, and give a warning that case might need to be checked? like, instead of the somewhat cryptic

“file modified but not rescanned; will try again later”

maybe it could say

“file modified but not rescanned; will try again later (note that this can indicate capitilzation conflicts in synced files)”

1 Like