В настоящее время вы работаете в автономном режиме; ожидается повторное подключение к Интернету

Как переместить файлы, используемые в данный момент

ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.

Эта статья на английском языке:140570
Аннотация
Иногда Win32-приложения необходимо удалить, переименовать или переместить файлыиспользуется в данный момент в системе. Одним из типичных примеров является установкипрограммы, необходимо удалить сами с жесткого диска пользователя, когда онипо завершении установки пакета программного обеспечения. В некоторых случаях необходимо также переместитьдрайверы устройств, которые используются в настоящий момент в системе. Приложениянужна помощь от операционной системы, удалить или переместить эти файлы.

Windows 95 и Windows NT предоставляют уникальный метод для обеспеченияприложения, чтобы удалить, заменить или переименовать файлы и каталоги, являющиесяиспользуется. Несмотря на то, что отличаются как они реализуют эти две платформыметоды, оба совместно используют общую стратегию, где приложение указываеткакие файлы для обработки и система обрабатывает их после ее перезагрузки. Этостатья объясняет, как приложения могут использовать метод, предоставляемый другПлатформа Windows.
Дополнительная информация

Перемещение файлов в Windows NT

Win32-приложениями для Windows NT следует использовать MoveFileEx() сблагодаря которому флаг, который требуется переместить, заменять или удалять файлы икаталоги, в настоящее время используется. В следующий раз при перезагрузке системыПрограмма загрузки Windows NT будет передвинута, заменить или удалить указанные файлыи каталогов.

Чтобы переместить или заменить файл или каталог, который используется, необходимо приложение(например, укажите путь источника и назначения на том же томедиск C:). Если путь назначения является существующий файл, он будетперезапись. Если путь назначения существующий каталог, он не будетбыть заменен, а останется пути источника и назначениябез изменений. Ниже приведен пример вызова для перемещения или заменить файл или переместитькаталог:
   // Move szSrcFile to szDstFile next time system is rebooted   MoveFileEx(szSrcFile, szDstFile, MOVEFILE_DELAY_UNTIL_REBOOT);				
Удаление файла или каталога, приложение должно установить назначениепуть в NULL. Если исходный путь представляет собой каталог, он будет удален только в случаеон пуст. Обратите внимание, что если необходимо использовать MoveFileEx() для удаления файлов изкаталог, необходимо перезагрузить компьютер перед вызовом MoveFileEx() дляУдаление каталога. Вот пример того, как удалить файл или пустойкаталог:
   // Delete szSrcFile next time system is rebooted   MoveFileEx(szSrcFile, NULL, MOVEFILE_DELAY_UNTIL_REBOOT);				

Перемещение файлов в Windows 95

Windows 95 не реализует MoveFileEx(), но предоставляет альтернативноеспособ для всех основе Win32, 16-разрядной операционной системой Windows и основе MS-DOSприложения для перемещения, заменить или удалить файлы (но не каталоги),используются в настоящее время. Эта возможность реализуется через [переименовать]раздел файла с именем Wininit.ini. При наличии в Wininit.iniКаталог Windows Wininit.exe обрабатывает его при загрузке системы. Один разОбработка Wininit.ini, Wininit.exe переименовывается в Wininit.bak.

Используется следующий синтаксис в разделе [переименовать]:
   DestinationFileName=SourceFileName				
DestinationFileName и Имя_файла_исходного_кода, должны находиться на одном томе ибыть коротких имен файлов (8.3), поскольку Wininit.ini обрабатывается раньшезащищенный режим дисковая система загружается, и длинные имена файлов, толькодоступные при запуске системного диска защищенного режима. Назначения иисходные файлы, указанной в поле Wininit.ini длинные имена файлов учитываются.

В разделе [переименовать] может иметь несколько строк по одному файлу в строке. Дляудалить файл, укажите NUL как DestinationFileName. Ниже приведены некоторые записиПримеры:
   [rename]   NUL=C:\TEMP.TXT   C:\NEW_DIR\EXISTING.TXT=C:\EXISTING.TXT   C:\NEW_DIR\NEWNAME.TXT=C:\OLDNAME.TXT   C:\EXISTING.TXT=C:\TEMP\NEWFILE.TXT				
Первая строка вызывает Temp.txt для удаления. Второй причиныExisting.txt, который требуется переместить в новый каталог. Третья приводит к Oldname.txtЧтобы перемещать и переименовывать. Четвертый вызывает существующего файлазаменены Newfile.txt.

Приложения не должны использовать WritePrivateProfileString() для записираздел [переименовать] поскольку может существовать несколько строк с одинаковымиDestinationFileName, особенно при DestinationFileName «nul.» Вместо этогоих следует добавить записи путем разбора Wininit.ini и при добавлении записи вконец раздела [переименовать].

Примечание: Всегда используйте поиск без учета регистра для разбора Wininit.ini, так какЗаголовок раздела [переименовать] и имена файлов в ней может иметь любойкомбинацию прописных и строчных букв.

Приложения, использующие Wininit.ini необходимо проверить факт его существования вКаталог Windows. Если присутствует Wininit.ini, затем другое приложение имеетзаписи с момента последнего перезапуска системы. Таким образомприложение должно открыть его и добавить записи в разделе [переименовать]. ЕслиWininit.ini отсутствует, приложение должно создать его и добавить[Переименуйте] раздел. Таким образом, операции из других приложенийне удалять случайно приложения.

Чтобы отменить операцию переименования файла до перезагрузки системы, вы должныУдалите соответствующую строку из раздела [переименовать] Wininit.iniфайл.
Программа установки обновления установки

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 140570 — последний просмотр: 06/02/2011 08:20:00 — редакция: 4.0

Microsoft Win32 Application Programming Interface

  • kbapi kbfileio kbhowto kbkernbase kbprogramming kbmt KB140570 KbMtru
Отзывы и предложения