如何创建一个文件,我可以处理对这个文件的所有访问。我的程序可以将请求的数据发送到从此文件读取的所有程序,并接收对此文件的所有写入。如何创建虚拟可变文件?
回答
NTFS流:
NTFS Stream可能是另一种选择。从Windows Sysinternals
行情:
NTFS文件系统提供的应用程序来创建的信息 备用数据流的能力。默认情况下,所有数据都存储在 文件的主要未命名的数据流,但通过使用语法 “文件:流”,你能读写交替 ...
上流
其它相关的资源:
- File Streams(MSDN页面)
- 使用流A C++代码样品为p rovided here。
- NTFS Streams(上AuditMyPC.com输入)
- NTFS Alternate Streams: What, When, and How To
这是在磁盘上,并将在下一代Win8文件系统中消失。 – 2012-04-26 21:36:38
这听起来好像需要创建使用的CreateFileMapping/MapViewOfFile一个共享内存区 - 你会发现在网络上,并在书的例子很多。
例如:http://voiceofgeek.blogspot.com/2009/02/memory-mapped-file-in-delphi.html – Pateman 2012-04-26 09:34:10
这个问题很模糊。
如果其他应用程序是你的,那么你可以选择一些其他的进程间通信(IPC)机制,而不是使用的文件。或者您可以使用临时文件(使用特殊的TEMPORARY属性创建的文件)。
如果其他应用程序是不是你,并期望该文件在磁盘上存在,那么你需要或者创建这个文件,或创建一个虚拟文件系统和磁盘或现有的文件系统上的虚拟文件。要创建虚拟文件系统,您需要一个内核模式驱动程序(文件系统驱动程序)。要在现有磁盘上创建虚拟文件,您需要内核模式文件系统过滤器驱动程序。
内核模式驱动程序是非常棘手和耗时的创建,并且需要Windows内部知识。作为选项之一,您可以使用我们的回叫文件系统(CBFS)产品,该产品可让您以用户模式(我们提供驱动程序)创建虚拟文件系统。但是CBFS对于你的任务可能是一种矫枉过正。
因此,您最好的选择是审查您的任务和要求,并找到另一种方式向其他应用程序提供数据。
例如:我需要创建一个虚拟文件,用于更改其他程序的每次访问的数据。而不是在RAM或磁盘上存在这个文件,因为文件访问数据的每个字节都被改变了,这个改变是通过我的程序进行的。 – MohsenB 2012-04-26 10:33:05
@MohsenB这种方法存在问题 - 操作系统会在读取文件数据后缓存文件数据,并且每次读取都无法替换新数据。此外,所有程序的数据必须相同(出于同样的原因 - 缓存)。这些是Windows文件系统体系结构的限制/细节,与Unix类似的系统不同,它将文件视为命名数据,而不是某些数据流。 – 2012-04-26 10:37:47
谢谢,我的最终目标是创建一个虚拟文件,该文件模拟其他加密文件,并且由于此加密文件非常大,我希望在运行时间减少并且只阻止其他程序访问它。 – MohsenB 2012-04-26 10:49:41
你能写一个样本吗? – MohsenB 2012-04-28 18:01:30
下面是一个示例:xxmCGI.exe将CGI调用从Web服务路由到托管命名管道的中央xxmHost.exe进程:http://xxm.svn.sourceforge.net/viewvc/xxm/trunk/Delphi/cgi/ xxmCGI.dpr?view =标记http://xxm.svn.sourceforge.net/viewvc/xxm/trunk/Delphi/cgi/xxmHostRun.pas?view=markup – 2012-04-28 18:44:04
- 1. 如何创建虚假/“虚拟”文件?
- 2. 如何创建虚拟文件?
- 3. 从ASP.NET创建虚拟文件夹
- 4. 创建一个大的虚拟文件
- 5. 外壳扩展 - 虚拟文件创建
- 6. 创建“虚拟”ScrollableControl?
- 7. REST API创建虚拟机部署:如何使用AD DC创建虚拟机?
- 8. 如何在Linux中创建虚拟命令支持的文件?
- 9. 如何创建一个虚拟的jquery文件树?
- 10. 如何创建Eclipse虚拟文件资源
- 11. pyvmomi python:如何在特定文件夹中创建虚拟机
- 12. 如何在clang中为代码完成创建虚拟文件
- 13. 在R中创建虚拟变量
- 14. 从值列创建虚拟变量列
- 15. 创建一个虚拟变量
- 16. 在R中创建虚拟变量
- 17. 如何用xampp虚拟机创建虚拟主机?
- 18. 如何创建虚拟COM端口
- 19. 如何创建虚拟(内存)SD卡?
- 20. 如何创建虚拟手柄?
- 21. 如何创建虚拟的图像
- 22. 如何创建虚拟Windows驱动器
- 23. 如何创建虚拟卷轴?
- 24. 如何创建“虚拟”模块对象?
- 25. 如何创建一个虚拟设备文件来模拟dev/mem?
- 26. 如何从R中的某个因子创建虚拟变量?
- 27. 如何通过model.matrix为glmnet(LASSO)创建虚拟变量?
- 28. 阅读使用虚拟文件系统创建的文件JIMFS
- 29. 在EJB中创建临时文件或虚拟文件
- 30. 如何创建一个不可分配的虚拟值?
什么是虚拟文件? – 2012-04-26 09:31:25
“虚拟文件”是一个在磁盘或内存中不存在的文件。并通过软件进行模拟。 – MohsenB 2012-04-26 09:58:27
如果它不存在于磁盘上并且不存在于RAM中,它在哪里? – 2012-04-26 10:09:45