I agree with your approach and would like to add my 2 cents worth to your comments on files.
The current File class and the NIO Channel class don't supply you with access to the File System itself. (There's also a FileSystem class).
What's needed is to have SPI implementations for SMB, NFS, WebDAV, FTP, HTTP, CVS etc. I think that's the intent with the NIO classes, but calling it a Channel seems too "abstract" a notion. There are a number of open source APIs to handle these types of file systems, and the NetBeans group created an architecture to support different file systems. Moreover, Sun had a framework several years ago, that it failed to incorporate within the JDK, called WebNFS that provided just such a framework.