winfsp / cgofuse

Cross-platform FUSE library for Go - Works on Windows, macOS, Linux, FreeBSD, NetBSD, OpenBSD
https://winfsp.dev
MIT License
514 stars 82 forks source link

Running on Windows 10 #22

Closed ajdevries closed 6 years ago

ajdevries commented 6 years ago

Nice project, good API and happy that it is also available on Windows.

I'm trying to build a FUSE filesystem for OSX and Windows. Got a part working, but when testing on Microsoft Windows [Version 10.0.16299.125] it doesn't work.

Also when testing with memfs.go it doesn't work well on Windows. When running in DEBUG mode I see that all files and directories are uppercase. Some issues that I'm having running memfs:

I'm using the latest WinFSP version.

Can you help me out what is going wrong here?

ajdevries commented 6 years ago

After some digging. I found the following user errors ;-)

When not using a mountpoint a z: drive is created and that is working okay.

billziss-gh commented 6 years ago

File systems on Windows can be mounted as drives or as directories.

Unfortunately file systems mounted as directories must be case-insensitive to function properly. This is because Windows treats file systems mounted as directories as case-insensitive regardless of what the file system reports; it will in many cases lookup files with uppercase names (FILENAME) even if the original application did not do so.

This is an unfortunate limitation of the Windows system and it does not happen when the file system is mounted as a drive or when the file system is case-insensitive.

ajdevries commented 6 years ago

Thanks for the quick response. Make sense. Will close the issue.