Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.
Trying to fix the issue with closing the response stream without closing the underlaying connection which leads to freezing, I looked at your code, but through the WebClient it is not possible to get the reference of the FtpWebResponse.
As you mixed the local filesystem, ftp and WebDAV access, it could be very hard to solve this problem.
What do you think about the following class diagram:
This would separate each storage system (FTP, WebDAV, local file system, SSH, SFTP…) and each storage system can do its own locking. Besides, each storage system has to try to be as most consistent as possible (not overwriting data directly, but indirect with a temporary file).
And why do you not set WebRequest.DefaultProxy and WebRequest.DefaultCachePolicy? Each WebRequest gets configured automatically with this proxy and CachePolicy, so you don't have to set it manually.
No idea or feedback?
I would implement it, but as far as I don't know whether my work will be useful or a waste of time, I wait for any response.
I think the current architecture is sufficient. You already can add own storage providers (see e.g. the IOProtocolExt plugin).