Pregunta

For a long time, I've been looking for a class in .NET that has functionality that makes it so that the operating system thinks there is a file (or directory, or both, etc) at a particular location - but all hooks are passed to a function (or event?) in code.

Example:

If I browse to "x:\fake_directory\" I will see a file there, "fake_file.txt". If I double click on the file, Notepad.exe will launch and the file contents would say "Hello World". "Hello World" would come from my c# code.

Example of what I hope the class can do (maybe this will explain it better):

VirtualFile.Register("c:\my_file.txt",
    delegate { return Encoding.Ascii.GetBytes("Hello World"); });

That's, of course, a simplified version of what I'm looking for... but hopefully you get the idea.

The reason why this is 100% needed is to work with legacy code or proprietary (and very old legacy garbage) systems that require reading and writing to the file system to communicate.

¿Fue útil?

Solución

I believe Dokan would fit your needs for a virtual file system library. Dokan is written in c++ but there is a .NET library to interact.

Dokan link

On the other hand, i believe IPC would be better to achieve the needed functionality for which you gave an example in the comments.

Otros consejos

Depending on whether your data is static or generated on the fly, you will find either Callback File System or Solid File System OS Edition suitable for your needs (both are our products). SolFS is a ready to use virtual file system with built-in container. Callback File System is a virtual file system without container (you provide structure and data on the fly).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top