Windows XP上的不可移动文件

3
当我对我的XP机进行碎片整理时,我注意到有一块“不可移动文件”的区域。是否有一个文件属性可以让我自己的文件不可移动?
只是为了澄清,我想要一种编程方式告诉Windows我创建的文件应该是不可移动的。这是可能的吗?如果可以,我该如何做?
谢谢,
Terry
9个回答

9
很多系统文件在系统启动后无法移动,例如分页文件和注册表数据库文件。 此实用程序 在Windows启动之前运行,以碎片整理这些文件。我已经设置它在每次启动时运行,在几台机器上都运行良好。
请注意,第一次使用此实用程序运行时,可能需要几分钟进行碎片整理。但是,在第一次运行之后,只需3或4秒即可完成。 编辑0:回应您的澄清-该链接指出Windows已将页面文件和注册表文件标记为独占访问。因此,您应该能够使用LockFile API调用执行相同的操作。但是,这不是文件本身的属性。您必须实际运行一些后台程序以独占方式访问文件。

如果它无法对任何文件进行碎片整理,PageDefrag将在每次启动时继续尝试,并且可能需要一段时间,因此它提供了运行一次的选项。这并不意味着它不是一个很棒的工具,我衷心推荐。来自我方的+1。 - David Webb
看起来微软对此进行了限制。他们的工具抱怨我不是管理员,即使我故意右键单击以管理员身份运行它。 - Hakanai

2

没有文件属性可以将其标记为不可移动。我认为,唯一的方法是在某些其他进程打开文件(读或写,我甚至不确定是否需要以独占模式打开文件)期间,文件不能在碎片整理期间移动。

老实说,除非您对文件所在磁盘盘片的位置有特定要求,否则我想不出为什么您不希望文件移动。碎片整理通常会导致更快的磁盘访问,这似乎在所有情况下都是可取的 :-)


1

这通常意味着该文件正在被某个进程使用。如果您正在进行碎片整理,您可能会看到许多系统文件出现此问题。如果该文件应该合法地可移动但卡住了(例如,它被一个在启动时运行但不应该运行的进程所持有),解决问题最有用的方法是删除该文件的所有权限,重新启动计算机,恢复权限,然后删除该文件/运行试图使用它的程序。


1

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

这真的很丑陋,除非没有更干净的解决方案,否则我不建议使用它。


1

Terry,所有的答案都提到了如何防止在碎片整理期间文件变得不可移动。从你的问题中可以看出,你实际上想要使你的个人文件不可移动。请问您能否澄清一下,为什么让您的文件不可移动很有吸引力。


0

我猜你正在使用Windows自带的碎片整理工具。一些商业软件如DiskKeeper可以移动其中的一些文件(通常是系统文件)。你可以试用它们的试用版本。


0

0

如果需要更完整的解决方案,请尝试Raxco的PerfectDisk。虽然它是一款商业产品,但它非常出色,并支持系统文件的启动时间碎片整理。第一次碎片整理比如DiskKeeper要慢,但它是单次碎片整理程序,并支持在驱动器上剩余非常少的空间进行碎片整理。总体而言,它是我见过的最智能的碎片整理程序,支持任何大小的系统。

http://www.raxco.com/


0

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

但是要小心,如果这些是Windows系统文件,则可能导致Windows无法启动。

一些文件无法移动的原因包括:文件大小过大,文件正在打开/使用中,安全权限不足,被其他计算机访问等等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接