Windows XP上无法移动的文件

时间:2020-03-05 18:50:09  来源:igfitidea点击:

在对XP机器进行碎片整理时,我注意到有一个"无法移动的文件"块。是否可以使用文件属性使自己的文件无法移动?

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

谢谢,

特里

解决方案

回答

我假设我们使用的是Windows随附的碎片整理程序。一些商业文件,例如DiskKeeper,可以移动其中的一些文件(通常是系统文件)。我们可以尝试他们的试用版。

回答

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

回答

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

该实用程序在Windows启动以对这些文件进行碎片整理之前运行。我将其设置为在每次启动时都运行,并且它对我在多台计算机上都运行良好。

请注意,在首次启动时将此实用程序设置为运行时,可能需要花费几分钟来进行碎片整理。但是,在第一次运行之后,它仅需3到4秒钟即可完成。

Edit0:为响应澄清,该链接显示窗口已将页面文件和注册表文件标记为打开以供独占访问。因此,我们应该可以使用LockFile API调用执行相同的操作。但是,这不是文件本身的属性。我们实际上必须运行一些后台程序,该程序会锁定文件以进行独占访问。

回答

Contig可以满足目的http://technet.microsoft.com/en-us/sysinternals/bb897428.aspx

我相对确定我遇到了一些方法/属性,我们可以通过编程访问这些方法/属性以准确地完成所需的操作。那是NT4的日子了,我的记忆力还不是很好。

回答

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

这确实很丑陋,除非没有更清洁的解决方案,否则我不建议我们这样做。

回答

特里,所有答案都提到了防止文件在碎片整理过程中变得无法移动的方法。从问题看来,我们实际上实际上是想使个人文件不可移动。我们能说明一下使文件不可移动的吸引力是什么。

回答

有关更完整的解决方案,请尝试Raxco的PerfectDisk。虽然它是一种商业产品,但是却做得很好,并支持系统文件的启动时间碎片整理。第一次磁盘碎片整理比DiskKeeper花费的时间长,但是它只有一次通过碎片整理,并支持磁盘碎片整理,而驱动器上只有很少的可用空间。总体而言,它比我见过的任何其他碎片清理程序都要聪明得多,并且可以支持任何大小的系统。

http://www.raxco.com/

回答

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

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