1

У меня есть гостевая версия Windows XP Home Edition и хост Linux Mint 13. Я использую VirtualBox, и каталог ~/Public используется совместно с гостем. Иногда случается, что я использую IE в гостевой системе для загрузки файлов (пока не получу лучший браузер Windows).

Все загруженные файлы отправляются на диск L:\ (каталог ~/Public). После завершения загрузки проводник Windows добавляет :Zone.Identifier для каждого файла, который я загружаю. Когда я извлекаю загруженный ZIP-архив на гостевой компьютер (на диске L:\), Windows создает :Zone.Identifier для каждого файла в извлеченном каталоге. Это даже происходит, если я использую хост для перемещения файла в каталог ~/Public .

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

Вот что я вижу в Windows Explorer:Мусор в моем публичном каталоге на Windows

Кстати, если бы я работал на хосте Mac OS X (где двоеточия - недопустимые символы имени файла), это было бы еще более ужасно.

1 ответ1

4

Бьюсь об заклад, они используются для отслеживания, откуда пришел файл (для всплывающих окон появляется диалоговое окно «Вы уверены, что хотите открыть это» при попытке открыть загруженный файл .zip или .exe).

Моя память не на 100%, но, если я правильно помню, в именах файлов Windows запрещено : потому что это используется для альтернативных потоков в файле. У вас есть основной поток данных, который содержит фактическое содержимое, но каждый файл может иметь имена альтернативных потоков, которые содержат метаданные: C:\File\Path\Filename.exe:AlternateStreamName

Если основной файловой системой является EXT4, то я подозреваю, что IE/WE пытается записать в такой файл и ожидает, что это будет альтернативный поток, тогда как драйвер файловой системы для диска L:\ просто создает его как обычный файл.

(Между прочим, в NTFS : не запрещено, только Win32 API, который использует проводник Windows и большинство приложений (потому что они повторно используют его для альтернативных потоков). NTFS поддерживает любой символ в имени файла, кроме NUL (\0000) или косой черты (/), а HFS Plus (Mac OS X) поддерживает любой символ, кроме NUL (но это может быть дополнительно ограничено инструментами или ОС в зависимости от его потребностей))


Ансгар Вичерс дал ответ в комментариях ниже:

Создание потоков ZoneIdentifier можно отключить, установив политику Не Do not preserve zone information in file attachments enabled . Политика находится в разделе User Configuration\Administrative Templates\Windows Components\Attachment Manager .

Для поврежденных версий Windows создание значения реестра DWORD SaveZoneInformation со значением 1 в [HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments] должно иметь тот же эффект.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .