Behavior of Dump
VDatabase.Dump() should come in two versions. The first one, which is the current one, takes a FolderItem as the first parameter, should dump the database to a file on the client. This can be implemented I think with no low-level changes; the client plugin downloads the information, generates the XML/SQL, and writes the data to the file passed to Dump.
The second version should take a relative path as the first parameter. Add a setting to the .ini file like
DumpDirectory=Dumps;
that specifies a directory for dump files. Then the parameter should be a string of the form
“subdirectory/subsubdirectory/…/filename”.
If a file at the path already exists, it is overwritten. If a directory at the path exists, some error should be returned (either by exception or error code).
Then VServer needs a way to examine dump directory contents. I don't think FolderItems are a good solution for this. Instead I suggest the following as a VServer method.
Function DumpDirectoryContents() as String()
This function returns a list of (absolute) paths for files and subdirectories in DumpDirectory. Then the caller can check to see whether a file exists to avoid overwriting data.