1

I want to create a "virtual" file that, when accessed, will be d/l (by my background application). This should work if the file is accessed by windows explorer, or by other application (e.g Microsoft Word...)

What is the best way to implement it?

EDIT:

Can this be implemented by Shell Extensions?

user653952
  • 121
  • 1
  • 8
  • 1
    Why do you want to create this rather than use an existing implementation? – Anon May 12 '11 at 16:04
  • I didn't find any existing implementation that suits my needs. The virtual files will each be located in different place, and, to be d/l, should use differnet protocol – user653952 May 13 '11 at 14:51

3 Answers3

1

It sounds as if you're about to write a virtual file system driver. That's a pretty hard task in pure C, limited debugging support and many reboots.

If I'm not mistaken, the task is so hard that there are several commercial offerings that provide tools and libraries that considerably simplify the implementation.

Update:

A starting point is Microsoft's Installable File System Kit, which is a part of the Windows Driver Kit.

Codo
  • 75,595
  • 17
  • 168
  • 206
  • Kernel driver might be overkill for me (and the scared user:)). Will Shell extensions work instead? – user653952 May 13 '11 at 14:52
  • No, shell extension won't help. With shell extension, you can add additional context menu items for existing files. But what you need is to have the virtual files appear in the first place. – Codo May 13 '11 at 22:17
1

What you're describing sounds a lot like WebDAV. There are already servers that support this protocol (including Apache), and Windows appears to support it either natively or via an add-in feature.

Anon
  • 2,328
  • 12
  • 7
0

You can also choose to implement an CIFS/NFS server instead. I don't know about the current state of Alfresco's JLAN, but they did open source (some of?) the code. Perhaps ask for an update here: Open Java SMB server implementation

Community
  • 1
  • 1
Dilum Ranatunga
  • 13,254
  • 3
  • 41
  • 52