A computer-implemented method for completing a file save operation by replacing old files with new files, the old files assigned old names and comprising opaque files and non-opaque old files, the new file assigned final names and comprising the opaque files and non-opaque new files, wherein each opaque file represents static content of one of the old files and one of the new files, the method comprising the steps:
- initiating the file save operation by creating the new files;
- assigning a temporary name to the opaque files and to the non-opaque files for each new file;
- saving the non-opaque new files onto the permanent storage medium, each of the non-opaque new files having a corresponding temporary name;
- creating an opaque recovery file comprising information listing the old name and the temporary name for each opaque file, the information of the opaque recovery file useful for supporting replacement of the old files with the new files in the event of a catastrophic failure of the file save operation;
- creating a primary recovery file comprising information listing the temporary name and the final name of the opaque files and the non-opaque new files for each new file, the information of the primary recovery file useful for supporting replacement of the old files with the new files in the event of a catastrophic failure of the file save operation;
- replacing the old names of the opaque files with the temporary names;
- replacing the old names of the non-opaque old files with backup names to support a restoration of the assignment of the old name to the non-opaque old file in the event of a non-catastrophic failure preventing completion of the file save operation;
- and
- replacing the temporary names of the opaque files and the non-opaque new files with the final names for the new files to complete the file save operation.