Наутилус вызывает статистику / файл во всех записях каталога

Я пишу статью, и мне нужно подтвердить кое-что, что для меня довольно очевидно, но я не видел код, который мог бы убедительно сказать мне, что именно так он и работает.

Когда я открываю папку в Nautilus, она вызывает stat системный вызов и file команда на каждый обычный файл в этой папке? Мне также интересно, как он генерирует миниатюры, но это побочный квест.

1 ответ

Наутилус написан на C. Я не нашел никаких ссылок на stat syscall в исходном коде, поэтому не могу сказать со 100% уверенностью, что он его использует или не использует.

Mime-тип файлов получается через nautilus_file_get_mime_type функция, на которую часто ссылаются в нескольких файлах, таких как nautilus-mime-actions.c, nautilus-properties-window.c, nautilus-window-slots.c и другие.

Однако я не смог найти определение этой функции, только назначения:

$ grep -iR 'file_get_mime_type'                                                                                          
nautilus-canvas-view-container.c:   mime_type = nautilus_file_get_mime_type (file);
nautilus-mime-actions.c:    mime_type = nautilus_file_get_mime_type (file);
nautilus-mime-actions.c:    mime_type_a = nautilus_file_get_mime_type (file_a);
nautilus-mime-actions.c:    mime_type_b = nautilus_file_get_mime_type (file_b);
nautilus-mime-actions.c:    mime_type = nautilus_file_get_mime_type (file);
nautilus-mime-actions.c:    char *mime_type = nautilus_file_get_mime_type (parameters->file);
nautilus-mime-actions.c:        mime_type = nautilus_file_get_mime_type (parameters_install->file);
nautilus-mime-actions.c:    mime_type = nautilus_file_get_mime_type (parameters_install->file);
nautilus-mime-actions.c:    mime_type = nautilus_file_get_mime_type (file);
nautilus-properties-window.c:       ret = g_list_append (ret, nautilus_file_get_mime_type (NAUTILUS_FILE (l->data)));
nautilus-properties-window.c:   mime_type = nautilus_file_get_mime_type (file);
nautilus-properties-window.c:   mime_type = nautilus_file_get_mime_type (target_file);
nautilus-window-slot.c:     mimetype = nautilus_file_get_mime_type (file);
Другие вопросы по тегам