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

Переводы статьи Переводы статьи
Код статьи: 140570 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

Иногда 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 - Последний отзыв: 2 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Win32 Application Programming Interface на следующих платформах
    • Microsoft Windows 98 Standard Edition
    • операционная система Microsoft Windows Millennium Edition
Ключевые слова: 
kbapi kbfileio kbhowto kbkernbase kbprogramming kbmt KB140570 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:140570

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com