Есть ли в Windows номера Inode, такие как Linux? - PullRequest
45 голосов
/ 23 августа 2011

Есть ли в Windows номера Inode, такие как Linux?Как Windows внутренне управляет файлами?

Ответы [ 7 ]

37 голосов
/ 23 августа 2011

Используемая терминология немного отличается от используемой в мире Unix, однако с точки зрения наличия целого числа, однозначно идентифицирующего файл, NTFS и некоторые API-интерфейсы Windows раскрывают концепцию «идентификаторов файлов», которая аналогична.

Вы можете запросить идентификатор файла открытого дескриптора с помощью GetFileInformationByHandle.См nFileIndexHigh, nFileIndexLow;это верхняя и нижняя части соответственно идентификатора файла, который составляет 64 бита.

NtCreateFile также может открыть файл по его идентификатору.Смотрите флаг FILE_OPEN_BY_FILE_ID.Вам нужен дескриптор тома для открытия по идентификатору файла.

9 голосов
/ 27 февраля 2017

Да. NTFS использует систему индексации B-Tree. Каждый файл в MFT имеет 64-битный индекс файла. Этот номер, называемый идентификатором файла, однозначно идентифицирует файл ТОЛЬКО В ЕГО ОБЪЕМЕ. То есть два файла на двух разных томах на одном ПК могут иметь одинаковый идентификатор файла. См. Эту статью MSDN для получения дополнительной информации.

https://msdn.microsoft.com/en-us/library/windows/desktop/aa363788(v=vs.85).aspx

относительно вашего второго вопроса, "как Windows внутренне управляет файлами", см. Эту статью technet:

https://technet.microsoft.com/en-us/library/cc781134(v=ws.10).aspx

6 голосов
/ 14 июля 2017

Да, это так.Обычно называется fileID.Попробуйте это в командной оболочке Win8:

fsutil file queryfileid  <filename>
5 голосов
/ 23 августа 2011

Здесь есть две вещи.Термин INode и реализация файловой системы, которая использует терминологию INode или что-то вроде INode.

Все известные мне файловые системы Windows (FAT *, NTFS) используют Inode-подобные структуры в реальной реализации.

Для дальнейшего упрощения ответа

(Подумайте оINode как блок метаданных о файле.)

INode как термин: файловая система Windows не имеет его.

INode как концепция: Windows будет иметь некоторые другие структуры, похожие по свойству ииспользование, но используется с другим именем

5 голосов
/ 23 августа 2011

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

http://pcnineoneone.com/howto/filesystems1/ имеет довольно хорошую запись для FAT и NTFS, которые являются двумя популярными файловыми системами с окнами.

0 голосов
/ 30 ноября 2014

НЕТ, в Windows NTFS нет эквивалента inode. Это больше для файловых систем на основе ** IX.

Но да, NTFS хранит уникальный 8-байтовый ссылочный номер для каждого файла.

ура. Комментируйте, если хотите узнать больше

0 голосов
/ 23 августа 2011

Inode - это концепция POSIX.Современные версии Windows используют NTFS.Подробное описание NTFS: Внутри NTFS

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