【发布时间】:2008-12-16 21:51:46
【问题描述】:
我想创建一个仅驻留在内存中的文件...在查看一些文档时,我看到了使用 shell 扩展作为虚拟文件的建议。我不确定这是一个可行的解决方案,但我想知道
- 这是一个好方法吗(或者我应该使用 ramdisk 代替)
- 从哪里开始阅读它的好地方
注意:这是在 Windows 平台上
【问题讨论】:
我想创建一个仅驻留在内存中的文件...在查看一些文档时,我看到了使用 shell 扩展作为虚拟文件的建议。我不确定这是一个可行的解决方案,但我想知道
注意:这是在 Windows 平台上
【问题讨论】:
据我了解,您希望您的程序创建一个“文件”,该文件仅驻留在内存中,您可以将其传递给另一个外部程序(例如 Microsoft Word)。
AFAIK 这是不可能的,缺少 ramdrive。我建议使用临时文件夹。但是,您必须想出一个策略,以便在不再需要文件时将其删除。
已添加:不过,您可能想查看Reparse points。我自己对它们并不熟悉,它们仅适用于 NTFS 格式的磁盘,但也许它们可以为您提供您想要的。不过,这将是很多编码。
【讨论】:
你没有说你在哪个平台上,但我猜是 Windows。 mmap() 可用吗?如果没有,我认为BerkeleyDB 已移植到 Windows,因此您应该可以使用它。 Win32 API 可能有类似于 mmap() 的东西,但我不知道。
【讨论】:
如果您想要一个仅驻留在内存中的文件,请使用命名管道或其他东西,尽管我质疑您的方案 - 您能更上一层楼并描述您想要做什么吗?
【讨论】: