Неподвижные файлы в Windows XP - PullRequest
       33

Неподвижные файлы в Windows XP

3 голосов
/ 09 сентября 2008

Когда я дефрагментирую свой компьютер с XP, я замечаю, что есть блок «Неподвижные файлы». Есть ли атрибут файла, который я могу использовать, чтобы сделать свои собственные файлы неподвижными?

Просто, чтобы уточнить, я хочу, чтобы программно сказать Windows, что созданный мной файл должен быть неподвижным. Возможно ли это, и если да, то как я могу это сделать?

Спасибо

Терри

Ответы [ 9 ]

9 голосов
/ 09 сентября 2008

Многие системные файлы не могут быть перемещены после загрузки системы, например, файл подкачки и файлы базы данных реестра.

Эта утилита запускается перед загрузкой Windows для дефрагментации этих файлов. Он настроен на запуск при каждой загрузке, и он хорошо работает на нескольких машинах.

Обратите внимание, что при первой загрузке с этой утилитой для запуска может потребоваться несколько минут для дефрагментации. После этого первого запуска он завершается всего за 3 или 4 секунды.

Edit0: чтобы ответить на ваше разъяснение, эта ссылка говорит, что windows пометил файл подкачки и файлы реестра как открытые для монопольного доступа. Таким образом, вы должны иметь возможность сделать то же самое с помощью LockFile API Call. Однако это не атрибут самого файла. Вам действительно нужно запустить некоторую фоновую программу, которая блокирует файл для монопольного доступа.

2 голосов
/ 09 сентября 2008

Нет файловых атрибутов, которые вы можете поместить в свои файлы, чтобы пометить их как неподвижные. Единственный способ, которым файл не может быть перемещен (я думаю) во время дефрагментации, - это открыть файл другим процессом (для чтения или записи, я даже не уверен, нужно ли открывать файл в монопольном режиме или нет). ).

Честно говоря, я не могу придумать причину, по которой вы хотите, чтобы ваши файлы не перемещались, если только у вас нет особых требований относительно того, где на диске находятся ваши файлы. Обычно дефрагментация должна приводить к более быстрому доступу к диску, и это представляется желательным во всех случаях: -)

1 голос
/ 09 сентября 2008

Терри, во всех ответах упоминаются способы предотвращения перемещения файлов во время дефрагментации. Из вашего вопроса видно, что вы действительно хотите сделать ваши личные файлы неподвижными. Не могли бы вы уточнить, что привлекательно для того, чтобы сделать ваши файлы неподвижными.

1 голос
/ 09 сентября 2008

Полагаю, уродливый способ - это запустить приложение при запуске, проверять каждые несколько секунд, работает ли дефрагментация, и, если это так, открывать файл в монопольном режиме.

Это действительно ужасно, и я не рекомендую его, если нет более чистого решения.

1 голос
/ 09 сентября 2008

Обычно это означает, что файл используется каким-либо процессом. Если вы дефрагментируете, вы, вероятно, увидите это с большим количеством системных файлов. Если файл должен по закону быть подвижным и зависать (его удерживает процесс, который запускается при запуске, но не должен, например), наиболее полезным способом решения проблемы является удаление всех разрешений для файла, перезагрузите компьютер, восстановите права доступа, а затем избавьтесь от файла / запустите программу, которая пытается его использовать.

0 голосов
/ 20 января 2012

сначала попробуйте переместить (или удалить) файлы в безопасном режиме. Если не можете, попробуйте переместить (или удалить) файлы с linux.

Но будьте осторожны, если это системные файлы Windows, тогда вам не удалось загрузить Windows.

Некоторые причины, по которым файлы не могут быть перемещены, заключаются в следующем: размер файла слишком велик, файлы находятся в открытом / занятом состоянии, недостаточные привилегии безопасности, доступ к другим компьютерам и многим другим.

0 голосов
/ 09 сентября 2008

Для более полного решения, попробуйте Raxco PerfectDisk. Хотя это коммерческий продукт, он отлично справляется со своей задачей и поддерживает дефрагментацию системных файлов во время загрузки. Первая дефрагментация занимает больше времени, чем, скажем, у DiskKeeper, но это дефрагментатор за один проход и поддерживает дефрагментацию с очень небольшим свободным местом на диске. В целом это гораздо более умная программа дефрагментации, чем любая другая, которую я видел, и она поддерживает системы любого размера.

http://www.raxco.com/

0 голосов
/ 09 сентября 2008

Контиг может служить вашей цели http://technet.microsoft.com/en-us/sysinternals/bb897428.aspx

Я относительно уверен, что наткнулся на некоторые методы / атрибуты, к которым вы могли получить программный доступ, чтобы делать именно то, что вы хотите. Это было еще в дни NT4, и моя память не так хороша.

0 голосов
/ 09 сентября 2008

Я предполагаю, что вы используете дефрагментатор, который поставляется с Windows. Некоторые коммерческие, такие как DiskKeeper, могут перемещать некоторые из этих файлов (обычно системные файлы). Вы можете попробовать их пробные версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...