I had a hard time telling which Stack Exchange site to ask this on.
I’m designing a server for my website, and I need it to run on both Linux and Windows, and I want it to only be able to serve files that are inside a particular folder (the “Content Folder”). This folder’s location will also be hard-coded because I don’t need it to be customizable at least for now. One weird edge case that I want to test (yes, I’m aware that I might be making this harder than it needs to be) is what if the Content Folder — the thing that you get back when you try to visit “C:pathtoContent_Folder” — is something other than a folder?
I know that on Linux, you can have files, folders, symlinks, named pipes, device files, and Unix sockets, and all of these can be handled like files, and I think I can deal with them on that platform, but Windows doesn’t use “everything is a file”, and I know that it handles at least some of these differently than files (or at least, it doesn’t allow you to put them wherever you want in the file system, e.g. I think named pipes exist, but if you want to handle them like files you have to use a weird path).
On top of that, what if Windows has something that it does handle like files that Linux doesn’t have that I don’t know about? What is that thing if it exists?
In short, what things exist in Windows that can show up in arbitrary places in the file system, but are not files, folders, or symlinks?