Just to make it clear:
1.) T:\.backup is the backup folder with all backed up data and it isn't the backup source. The backup source is in T:\ (excluding the .backup of course).
2.) Only the things which the user copys to the .backup will be backed up. (So, Yes)
3.) Insufficient space notification is the same like in the normal drive since it is on the same virtual liquesce drive. Only one physical disk is excluded for storage (that one with the original file).
Ok from the logical view it should do the following in pseudo pseudo code:
If something is changed in .backup and .backup feature activated
If there is a file/folder in the original data dir with the same name
make sure that the backup file/folder will be placed on a different disk
throw a access denied error // to prevent wrong usage of the .backup feature
So you have to use a backup/sync program of your choice to bring your data in the .backup folder or you copy it manually with explorer or script. The point is that you will get an automatically redundancy if you copy your files in .backup. Everthing with
automated copy will be in the other .mirror feature.
All folder operations are already working in my working copy.
I have troubles with the file write because there is already so much manual code and the Roots class isn't used for all path requests completely. I think I have to change the Roots.GetPath() and then the CreateFile Method. First tries were not working...
:-( I'd like to have a cleaner abstraction of the whole root/path/relative directory operations. I think we should not be able to see anything related with path lookup tables or root lists from the LiquesceOps.cs and just implement the file operations in there.
All path manipulations should go to Roots class.
The sharing things in Roots.GetPath() makes me also troubles because I'm not really seeing the sense of it. I don't like this recursion thing in the GetPath also...
But I keep on testing and implementing...
What about a naming convention?
path = C:\drive1\folder\file.txt
root = C:\drive1
relative = \folder\file.txt
just to get the code more clear...