0

更新:

嗯——尽管这个问题没有得到“回答”,但我还是掏空了我的口袋,买了一块 SSD。反正我的 ramdisk 软件的成本也差不多。我不再对这里的答案特别感兴趣,所以我将其标记为“已回答”并继续我的生活。

谢谢您的帮助。


我有一个程序正在将文件写入 ramdisk(在 Windows XP 中),一旦它完成执行,我需要将其数据从 ramdisk 复制到我的硬盘驱动器上的目录。显然,在 ramdisk 中空间是有限的,我需要在运行之间尽可能多地释放 ramdisk 上的空间。简单的解决方案是将我的程序在 ramdisk 上生成的数据文件夹复制到硬盘上的某个位置,然后递归地从 ramdisk 中删除“data”文件夹。

但是,该解决方案存在问题;我的程序查看文件系统和文件名以确保它不会覆盖文件(目录中最新的数据文件是 006.dat,因此它将写入 007.dat 而不是覆盖任何内容)。完成写入数据后,我不能只删除文件,因为当我将数据复制回硬盘驱动器时,它需要完整的文件系统来记录数据而不会覆盖旧文件

我想要一个简单的小 Windows 批处理脚本,我可以在我的程序完成将数据文件写入 ramdisk 后执行它。这个批处理脚本应该将 ramdisk“数据”文件夹复制到我的硬盘并从 ramdisk 中删除所有文件,然后它应该按原样重新创建文件系统,但包含所有零字节文件。

我该怎么办?

4

1 回答 1

0

您是否可以简单地让它删除除最近的所有文件之外的所有文件,然后您仍然有 006 并且您的记录器会生成 007?

这似乎比创建零长度文件更安全,因为您必须确保它没有被复制到备份中的真实 006 上。

编辑:抱歉无法帮助如何仅批量执行此操作,但是有一堆 unix 实用程序,特别是 find 和 touch 非常适合此操作。这些有许多 Windows 端口 - 在 SO 上搜索选项。

Robocopy.exe(在 Windows 服务器资源工具包中免费下载)可以从一个目录复制到另一个目录,并且可以选择监视目录中的新文件并在它们关闭或更改时复制它们

于 2011-07-10T00:40:29.613 回答