Подтвердить что ты не робот

Что такое "обычный файл" в Java?

Класс BasicFileAttributes, для изучения свойств файла в файловой системе, имеет метод isRegularFile ( ). К сожалению, описание Javadoc довольно не хватает:

Сообщает, является ли файл обычным файлом с непрозрачным контентом.

Что это значит? Что такое обычный файл с непрозрачным контентом? Я могу сказать из других методов в классе, что это не каталог или символическая ссылка, поэтому я склонен думать, что это все остальное. Однако, по-видимому, существует некоторый тип "нерегулярного файла", потому что существует метод, называемый isOther(), который возвращает true, если это не каталог, символическая ссылка или "регулярный файл".

Итак, что же такое обычный файл в Java?

4b9b3361

Ответ 1

Например, в UNIX обычный файл - это тот, который не является каким-то особым. Специальные файлы включают символические ссылки и каталоги. Обычный файл представляет собой последовательность байтов, хранящихся постоянно в файловой системе.

Прочитайте этот ответ @UNIX и Linux stackexchange: Что такое обычный файл?

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

это означает, что файл не является символической ссылкой, ником, rand, null, cpu и т.д. Возможно, вы слышали, что философия Linux - это текст. Эта в буквальном смысле не верна, но она предполагает доминирующий операционный контекст где инструменты строковой обработки могут быть применены к элементам файловой системы непосредственно. В этом случае это означает, что это более буквально. к см. шаг обнаружения в изоляции, попробуйте командный файл, как в файле /etc/passwd или файл /dev/null.

Ответ 2

Из Справочник по файлам - AIX IBM

Файл представляет собой набор данных, которые можно читать или записывать. Файл может представлять собой создаваемую вами программу, текст, который вы пишете, данные, которые вы приобретаете, или устройство, которое вы используете. Команды, принтеры, терминалы и прикладные программы хранятся в файлах. Это позволяет пользователям получать доступ к различным элементам системы единым способом и дает операционной системе большую гибкость. При создании файла не подразумевается формат.

Существует три типа файлов

  • Обычный - Сохраняет данные (текстовые, двоичные и исполняемые).
  • Directory - содержит информацию, используемую для доступа к другим файлам.
  • Специальный - определяет файл FIFO (первый-в-первом, первый-выход) или физическое устройство.

Обычные файлы являются наиболее распространенными. Когда для создания документа используется программа обработки текстов, как программа, так и документ содержатся в обычных файлах.

Обычные файлы содержат текстовую или двоичную информацию. Текстовые файлы читаются пользователем. Двоичные файлы читаются компьютером. Двоичные файлы могут быть исполняемыми файлами, которые инструктируют систему выполнить задание. Команды, сценарии оболочки и другие программы хранятся в исполняемых файлах.

Каталоги содержат информацию, необходимую системе для доступа ко всем типам файлов, но они не содержат фактических данных файла. В результате каталоги занимают меньше места, чем обычный файл, и дают гибкость и глубину структуры файловой системы. Каждая запись каталога представляет собой файл или подкаталог и содержит имя файла и номер файла i- node (индекс node). Номер i- node представляет собой уникальный i- node, который описывает расположение данных, связанных с файлом. Каталоги создаются и управляются отдельным набором команд. Дополнительную информацию см. В разделе "Каталоги" в операционной системе и устройстве.

Специальные файлы определяют устройства для системных или временных файлов, созданных процессами. Существует три основных типа специальных файлов: FIFO (first-in, first-out), block и character. Файлы FIFO также называются трубами. Трубы создаются одним процессом, чтобы временно разрешить связь с другим процессом. Эти файлы перестают существовать, когда заканчивается первый процесс. Файлы блоков и символов определяют устройства.

Все это выше из первой ссылки. Я проверил во многих других источниках различия в операционных системах, и кажется, что это наиболее распространенное определение для всех найденных мной источников.

Ответ 3

Я не эксперт в этом, но при первом образе BasicFileAttributes не является классом, а интерфейсом. Таким образом, независимо от того, какой обычный файл зависит от реализации этого интерфейса. Я вижу, что есть, например, класс WindowsFileAttributs, который реализует этот интерфейс.

Если вы посмотрите на версию OpenJDK этого класса, вы обнаружите, что это

!isSymbolicLink() && !isDirectory() && !isOther();

Получить всю другую информацию из кода; -)