Windows XP上的不可移动文件

时间:2008-09-09 15:32:45

标签: windows filesystems

当我对我的XP机器进行碎片整理时,我注意到有一块“Unmovable Files”。是否有文件属性可用于使我自己的文件无法移动?

为了澄清一点,我想要一种方法以编程方式告诉Windows我创建的文件应该是不可移动的。这是可能的,如果是的话,我该怎么做?

谢谢,

特里

9 个答案:

答案 0 :(得分:9)

系统启动后无法移动大量系统文件,例如页面文件和注册数据库文件。

在Windows启动之前运行

This utility以对这些文件进行碎片整理。我已将它设置为在每次启动时运行,并且它在几台机器上运行良好。

请注意,第一次使用此实用程序设置启动时,可能需要几分钟进行碎片整理。在第一次运行之后,它仅在3或4秒内完成。

编辑0:为了回应您的澄清 - 该链接表明Windows已将页面文件和注册表文件标记为打开以进行独占访问。因此,您应该可以使用LockFile API调用执行相同的操作。但是,这不是文件本身的属性。您必须实际运行一些后台程序来锁定文件以进行独占访问。

答案 1 :(得分:2)

您可以在文件上放置文件属性以将其标记为不可移动。在碎片整理期间无法移动文件(我认为)的唯一方法是让其他进程打开文件(对于读取或写入,我甚至不确定您是否需要以独占模式打开文件)。

坦率地说,我想不出你希望你的文件不会移动的原因,除非你对你的文件所在的磁盘盘上的位置有特定的要求。碎片整理通常应该导致更快的磁盘访问,并且在所有情况下似乎都是可取的: - )

答案 2 :(得分:1)

这通常意味着某个进程正在使用该文件。如果你进行碎片整理,你很可能会看到很多系统文件。如果文件应合法地移动并且卡住(例如,它由在启动时运行的进程保留但不应该被保留),解决问题的最有用方法是删除文件的所有权限,重启,恢复权限,然后删除文件/运行试图使用它的程序。

答案 3 :(得分:1)

我认为丑陋的方式是在启动时启动应用程序,如果碎片整理正在运行,则每隔几秒检查一次,如果是,则以独占模式打开文件。

这真的很难看,除非没有更清洁的解决方案,否则我不推荐它。

答案 4 :(得分:1)

Terry,答案都提到了防止文件在碎片整理过程中无法移动的方法。从您的问题看来,您实际上想要使您的个人文件无法移动。您能否澄清一下使您的文件无法移动的吸引力。

答案 5 :(得分:0)

我假设您正在使用Windows附带的碎片整理。像Diskeeper这样的商业软件可以移动其中一些文件(通常是系统文件)。您可以尝试他们的试用版。

答案 6 :(得分:0)

Contig可能符合您的目的http://technet.microsoft.com/en-us/sysinternals/bb897428.aspx

我相对肯定我遇到了一些方法/属性,你可以通过编程方式访问,以完全按照自己的意愿行事。这是在NT4天回来了,我的记忆力并不是那么好。

答案 7 :(得分:0)

要获得更完整的解决方案,请尝试使用Raxco的PerfectDisk。虽然它是一种商业产品,但它可以很好地完成并支持系统文件的启动时碎片整理。第一次碎片整理需要比DiskKeeper更长的时间,但是它只需一次碎片整理,并支持碎片整理,驱动器上剩余的空间很小。总的来说,它是一个更聪明的碎片整理程序,然后我见过并支持任何规模的系统。

http://www.raxco.com/

答案 8 :(得分:0)

首先尝试在安全模式下移动(或删除)文件。如果不能,请尝试使用linux移动(或删除)文件。

但要小心,如果这些是Windows系统文件,那么你无法启动你的窗口。

文件不可移动的一些原因是:文件太大,文件处于打开/使用状态,安全权限不足,被其他计算机访问,以及许多其他事情。