FreePCB, unfortunately, defaults to storing project files in a “projects” folder in its own working directory. This makes some sense, but ultimately documents are supposed to be stored in the proper place — not where the program is installed.
I agree this is best practice — but Windows (since Vista) takes things a step farther, as I found out today. If a 32-bit program is not running with administrator privileges and isn’t compiled for Vista or later, that means it can get “virtualized.”
What this means, in practical terms, is that, since Windows no longer allows programs to write to the “Program Files (x86)” directory structure, it makes a shadow copy of this structure and redirects all writes to that.
The problem arises when you want to, for example, go find these files that the program has written. They’re nowhere to be found in the “Program Files (x86)” structure — and yet, the program can exit, relaunch, and reload the files with no problem at all. Witchcraft!
Figuring that the files had to be somewhere on the drive, I went back to first principles and ran a search.
c:\>dir /s /b *.fpc
After a brief search, the files were found in the c:\Users\…\local\VirtualStore\ substructure. A quick Google search turned up the following explanation, paraphrased above.
Mystery solved. But some notice would have been appreciated, MS. Maybe one of those pop-up boxes you’re so fond of using to steal the focus at the worst possible times. Or something.