"Virtualized" root directory on Windows (was Re: import/export)

Kenneth Brody kenbrody at spamcop.net
Fri May 30 11:20:53 PDT 2014


On 5/30/2014 1:34 PM, Nancy Palmquist wrote:
> You may have trouble writing to C:\ drive.  Windows 7 does not usually
> allow it.
[...]

Actually, it's a but more "interesting" than that.

Windows will let (some?) programs create files in a "virtualized" root 
directory, which is in "%LOCALAPPDATA%\VirtualStore".

When a console application tries to create a new file in the root directory, 
it will instead create it in the VirtualStore directory.  When a console 
application tries to read a file from the root directory, it first looks in 
the VirtualStore directory, and if it's there, gets that one.  If not, it 
will get the one from the "real" root directory, if any.

This can lead to, umm... "fun" scenarios, such as two different versions of 
the apparently-same file.

For example, "gvim c:\fppath" will show one file (it exists -- I created is 
as admin long ago), whereas "vim c:\fppath" will show a different one.  The 
command "type \fppath" will show one version, and "cat \fppath" will show 
the other.

I'm not sure how Windows determines which version the program will see, as 
filePro will see the "real" \fppath file.  (It might be that gvim is marked 
as Windows 5.00, whereas filePro is Windows 5.01, but that's just an 
educated guess at this point.)

But, imagine using "vim \fppath" to change where the file points, having 
filePro still using the old path (despite no PF* environment variables 
overriding it), using "type \fppath" to see that nothing changed, only to 
have "vim \fppath" show you the changes you made.  Even more "fun" is when 
you rename "\fppath" to "\fppath.save", and "vim \fppath" still shows the 
file with your changes.  (And, just to top things off, "gvim \fppath" show 
show a blank, "new file".)

-- 
Kenneth Brody


More information about the Filepro-list mailing list