6

В Mac OS X есть очень полезное свойство файла, называемое "Откуда", которое сообщает вам URL-адрес, с которого был загружен файл, доступное через контекстное меню "Информация" в разделе "Подробнее", как показано ниже:

У меня такой вопрос: можно ли получить эту информацию в Windows?

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

Итак, Windows, очевидно, знает, что файл каким-то образом был загружен из Интернета - будь то просто через fileDownloadedFromInternet: true или что-то, чего я не знаю, но мне достаточно спросить.

1 ответ1

7

Ваш компьютер может определить, что файл был загружен из Интернета с использованием ADS или альтернативных потоков данных, функции файловой системы NTFS. Будучи функцией NTFS, если рассматриваемый элемент переносится в другую файловую систему, такую как FAT на USB, ADS будет потерян. В случае файлов, загружаемых из Интернета, расширение ADS добавляется к файлу, который идентифицирует этот файл, поступающий из "зоны" Интернета - где определена зона (по крайней мере, в Internet Explorer) в Internet Options -> Security . Различные зоны означают, что файлы приходят из разных мест (см. Здесь).

Чтобы увидеть, где находится ADS, вы используете команду Dir /R , которая имеет следующий вывод:

 Directory of C:\Users\Jacob\Downloads

12/31/2013  09:19 PM    <DIR>          .
12/31/2013  09:19 PM    <DIR>          ..
12/31/2013  09:19 PM                 0 ads.txt
12/31/2013  09:03 PM           502,784 kitty_portable.exe
                                    26 kitty_portable.exe:Zone.Identifier:$DATA
12/31/2013  09:09 PM    <DIR>          others
               2 File(s)        502,784 bytes
               3 Dir(s)  41,975,984,128 bytes free

Согласно приведенной выше ссылке, содержимое потока ADS идет примерно так для файла, загруженного из Интернета, где зона указана вашим браузером. Вы можете просмотреть, что находится в ADS, запустив notepad kitty_portable.exe:Zone.Identifier , в моем случае:

[ZoneTransfer]
ZoneId=3

Как видно на этом сайте, есть шесть идентификаторов передачи зоны, из которых 3 - это зона Интернета, как показано выше.

Теперь, когда вы пытаетесь открыть файл, для которого установлен этот ZoneID, вы получаете раздражающее приглашение, подобное тому, которое вы упомянули. Однако есть способ удалить его, щелкнув правой кнопкой мыши по файлу, перейдя в "Свойства" и нажав "Разблокировать" внизу:

Это удаляет ADS, добавленный к файлу, что больше не заставляет ваш компьютер беспокоиться об открытии файла. Это удаление ADS можно проверить, выполнив команду Dir /R в том же каталоге. Вы увидите, что ADS теперь нет:

 Directory of C:\Users\Jacob\Downloads

12/31/2013  10:32 PM    <DIR>          .
12/31/2013  10:32 PM    <DIR>          ..
12/31/2013  10:31 PM           502,784 kitty_portable.exe
12/31/2013  10:32 PM                 0 output.txt
               2 File(s)        502,784 bytes
               2 Dir(s)  41,850,904,576 bytes free

Все ушли! По сути, как только вы удаляете загрузки в Internet Explorer (или другом браузере), Windows не знает, с какого веб-сайта пришел файл, а только из Интернета. Если бы файл имел местоположение, связанное с ним, он, скорее всего, был бы сохранен в ADS.

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