Класс Файл
- java.lang.Object
-
- java.io.File
- Все реализованные интерфейсы:
-
Serializable,Comparable<File>
public class File extends Object implements Serializable, Comparable<File>
Абстрактное представление путей к файлам и каталогам.
Пользовательские интерфейсы и операционные системы используют зависящие от системы строки путей для именования файлов и каталогов. Этот класс представляет абстрактный, независимый от системы вид иерархических путей. Абстрактный путь имеет две составляющие:
- Необязательная, зависящая от системы префиксная строка, например, указатель диска,
"/"для корневого каталога UNIX, или"\\\\"для пути UNC Microsoft Windows, и - Последовательность из нуля или более строковых имён.
Преобразование строки пути к абстрактному пути и обратно неотъемлемо зависит от системы. При преобразовании абстрактного пути в строку пути каждое имя отделяется от следующего одной копией символа разделителя по умолчанию. Символ разделителя по умолчанию определяется системной переменной file.separator, и доступен в общедоступных статических полях separator и separatorChar этого класса. При преобразовании строки пути в абстрактный путь имена в ней могут разделяться символом разделителя по умолчанию или любым другим символом разделителя, поддерживаемым основой системы.
Путь, будь то абстрактный или в виде строки, может быть абсолютным или относительным. Абсолютный путь является полным, поскольку для определения расположения обозначаемого им файла не требуется дополнительная информация. В отличие от этого, относительный путь должен интерпретироваться в контексте некоторого другого пути. По умолчанию классы в пакете java.io всегда разрешают относительные пути относительно текущего каталога пользователя. Этот каталог определяется системной переменной user.dir, и, как правило, это каталог, в котором был вызван виртуальная машина Java.
Родительский абстрактный путь может быть получен вызовом метода getParent() этого класса и состоит из префикса пути и каждого имени в последовательности имён пути, кроме последнего. Абсолютный путь каждого каталога является предком любого объекта File с абсолютным абстрактным путём, начинающимся с абсолютного пути каталога. Например, каталог, обозначенный абстрактным путём "/usr" является предком каталога, обозначенного путём "/usr/local/bin".
Концепция префикса используется для обработки корневых каталогов на платформах UNIX и указателей дисков, корневых каталогов и путей UNC на платформах Microsoft Windows следующим образом:
- Для платформ UNIX префикс абсолютного пути всегда
"/". Относительные пути не имеют префикса. Абстрактный путь, обозначающий корневой каталог, имеет префикс"/"и пустую последовательность имён. - Для платформ Microsoft Windows префикс пути, содержащего указатель диска, состоит из буквы диска, за которой следует
":"и, возможно,"\\"если путь является абсолютным. Префикс пути UNC —"\\\\"; имя хоста и имя ресурса — первые два имени в последовательности имён. Относительный путь, не указывающий диск, не имеет префикса.
Экземпляры этого класса могут или не могут обозначать фактический объект файловой системы, такой как файл или каталог. Если он обозначает такой объект, то этот объект находится в разделе. Раздел — это зависящая от операционной системы часть хранилища для файловой системы. Одно хранилище (например, физический диск, флэш-память, CD-ROM) может содержать несколько разделов. Если он есть, объект будет находиться в разделе именуемом предком абсолютной формы этого пути.
Файловая система может реализовывать ограничения на некоторые операции с фактическим объектом файловой системы, такие как чтение, запись и выполнение. Эти ограничения вместе известны как разрешения доступа. Файловая система может иметь несколько наборов разрешений доступа к одному объекту. Например, один набор может применяться к владельцу объекта, а другой — ко всем другим пользователям. Разрешения доступа к объекту могут привести к отказу некоторых методов в этом классе.
Экземпляры класса File являются неизменяемыми; то есть, после создания абстрактного пути, представленного объектом File, он никогда не изменится.
Взаимодействие с пакетом java.nio.file
Пакет java.nio.file определяет интерфейсы и классы для доступа виртуальной машины Java к файлам, атрибутам файлов и файловым системам. Этот API может быть использован для преодоления многих ограничений класса java.io.File. Метод toPath может быть использован для получения Path, который использует абстрактный путь, представленный объектом File, для поиска файла. Полученный Path может использоваться с классом Files для более эффективного и широкого доступа к дополнительным операциям с файлами, атрибутам файлов и исключениям ввода-вывода для диагностики ошибок при операциях с файлами.
- С:
- 1.0
- См. также:
- Сериализованная форма
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static String | pathSeparator | Символ разделителя путей, зависящий от системы, представленный в виде строки для удобства. |
static char | pathSeparatorChar | Символ разделителя путей, зависящий от системы. |
static String | separator | Символ разделителя имён по умолчанию, зависящий от системы, представленный в виде строки для удобства. |
static char | separatorChar | Символ разделителя имён по умолчанию, зависящий от системы. |
Конструкторы
| Конструктор | Описание |
|---|---|
File(File parent,
String child) | Создаёт новый экземпляр |
File(String pathname) | Создаёт новый экземпляр |
File(String parent,
String child) | Создаёт новый экземпляр |
File(URI uri) | Создаёт новый экземпляр |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean | canExecute() | Проверяет, может ли приложение выполнить файл, обозначенный этим абстрактным именем пути. |
boolean | canRead() | Проверяет, может ли приложение прочитать файл, обозначенный этим абстрактным именем пути. |
boolean | canWrite() | Проверяет, может ли приложение изменить файл, обозначенный этим абстрактным именем пути. |
int | compareTo(File pathname) | Лексикографически сравнивает два абстрактных имени пути. |
boolean | createNewFile() | Атомарно создаёт новый пустой файл, именованный этим абстрактным именем пути, только если файл с таким именем ещё не существует. |
static File | createTempFile(String prefix,
String suffix) | Создаёт пустой файл в каталоге временных файлов по умолчанию, используя заданный префикс и суффикс для генерации его имени. |
static File | createTempFile(String prefix,
String suffix,
File directory) | Создаёт новый пустой файл в указанном каталоге, используя заданные префикс и суффикс для генерации его имени. |
boolean | delete() | Удаляет файл или каталог, обозначенный этим абстрактным именем пути. |
void | deleteOnExit() | Запрашивает удаление файла или каталога, обозначенного этим абстрактным именем пути, при завершении виртуальной машины. |
boolean | equals(Object obj) | Проверяет равенство этого абстрактного имени пути заданному объекту. |
boolean | exists() | Проверяет, существует ли файл или каталог, обозначенный этим абстрактным именем пути. |
File | getAbsoluteFile() | Возвращает абсолютную форму этого абстрактного имени пути. |
String | getAbsolutePath() | Возвращает строку абсолютного имени пути этого абстрактного имени пути. |
File | getCanonicalFile() | Возвращает каноническую форму этого абстрактного имени пути. |
String | getCanonicalPath() | Возвращает строку канонического имени пути этого абстрактного имени пути. |
long | getFreeSpace() | Возвращает количество нераспределённых байтов в раздела, названном этим абстрактным именем пути. |
String | getName() | Возвращает имя файла или каталога, обозначенного этим абстрактным именем пути. |
String | getParent() | Возвращает строку имени пути родительского каталога этого абстрактного имени пути или |
File | getParentFile() | Возвращает абстрактное имя пути родительского каталога этого абстрактного имени пути, или |
String | getPath() | Преобразует это абстрактное имя пути в строку имени пути. |
long | getTotalSpace() | Возвращает размер раздела, названного этим абстрактным именем пути. |
long | getUsableSpace() | Возвращает количество байтов, доступных этой виртуальной машине в разделе, названном этим абстрактным именем пути. |
int | hashCode() | Вычисляет хэш-код для этого абстрактного имени пути. |
boolean | isAbsolute() | Проверяет, является ли это абстрактное имя пути абсолютным. |
boolean | isDirectory() | Проверяет, является ли файл, обозначенный этим абстрактным именем пути, каталогом. |
boolean | isFile() | Проверяет, является ли файл, обозначенный этим абстрактным именем пути, обычным файлом. |
boolean | isHidden() | Проверяет, является ли файл, обозначенный этим абстрактным именем пути, скрытым файлом. |
long | lastModified() | Возвращает время последнего изменения файла, обозначенного этим абстрактным именем пути. |
long | length() | Возвращает длину файла, обозначенного этим абстрактным именем пути. |
String[] | list() | Возвращает массив строк, именованных файлами и каталогами в каталоге, обозначенном этим абстрактным именем пути. |
String[] | list(FilenameFilter filter) | Возвращает массив строк, именованных файлами и каталогами в каталоге, обозначенном этим абстрактным именем пути, удовлетворяющим заданному фильтру. |
File[] | listFiles() | Возвращает массив абстрактных имён пути, обозначающих файлы в каталоге, обозначенном этим абстрактным именем пути. |
File[] | listFiles(FileFilter filter) | Возвращает массив абстрактных имён пути, обозначающих файлы и каталоги в каталоге, обозначенном этим абстрактным именем пути, удовлетворяющие заданному фильтру. |
File[] | listFiles(FilenameFilter filter) | Возвращает массив абстрактных имён пути, обозначающих файлы и каталоги в каталоге, обозначенном этим абстрактным именем пути, удовлетворяющие заданному фильтру. |
static File[] | listRoots() | Перечисляет доступные корневые каталоги файловой системы. |
boolean | mkdir() | Создаёт каталог, именованный этим абстрактным именем пути. |
boolean | mkdirs() | Создаёт каталог, именованный этим абстрактным именем пути, включая все необходимые, но отсутствующие родительские каталоги. |
boolean | renameTo(File dest) | Переименовывает файл, обозначенный этим абстрактным именем пути. |
boolean | setExecutable(boolean executable) | Метод для удобства установки разрешения на выполнение для владельца этого абстрактного имени пути. |
boolean | setExecutable(boolean executable,
boolean ownerOnly) | Устанавливает разрешение на выполнение для владельца или всех для этого абстрактного имени пути. |
boolean | setLastModified(long time) | Устанавливает время последнего изменения файла или каталога, именованного этим абстрактным именем пути. |
boolean | setReadable(boolean readable) | Метод для удобства установки разрешения на чтение для владельца этого абстрактного имени пути. |
boolean | setReadable(boolean readable,
boolean ownerOnly) | Устанавливает разрешение на чтение для владельца или всех для этого абстрактного имени пути. |
boolean | setReadOnly() | Помечает файл или каталог, именованный этим абстрактным именем пути, таким образом, чтобы разрешались только операции чтения. |
boolean | setWritable(boolean writable) | Метод для удобства установки разрешения на запись для владельца этого абстрактного имени пути. |
boolean | setWritable(boolean writable,
boolean ownerOnly) | Устанавливает разрешение на запись для владельца или всех для этого абстрактного имени пути. |
Path | toPath() | Возвращает объект |
String | toString() | Возвращает строку имени пути этого абстрактного имени пути. |
URI | toURI() | Строит URI |
URL | toURL() | Устаревший. Этот метод не автоматически экранирует символы, недопустимые в URL. |
Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait Поля
separatorChar
public static final char separatorChar
Символ-разделитель имён по умолчанию, зависящий от системы. Это поле инициализируется первой буквой значения системной переменной file.separator. В системах UNIX значение этого поля равно '/'; в системах Microsoft Windows — '\\'.
- См. также:
System.getProperty(java.lang.String)
separator
public static final String separator
Символ-разделитель имён по умолчанию, зависящий от системы, представленный в виде строки для удобства. Эта строка содержит один символ, а именно separatorChar.
pathSeparatorChar
public static final char pathSeparatorChar
Символ-разделитель путей по умолчанию, зависящий от системы. Это поле инициализируется первой буквой значения системной переменной path.separator. Этот символ используется для разделения имён файлов в последовательности файлов, заданной как список путей. В системах UNIX этот символ — ':'; в системах Microsoft Windows — ';'.
- См. также:
System.getProperty(java.lang.String)
pathSeparator
public static final String pathSeparator
Символ-разделитель путей по умолчанию, зависящий от системы, представленный в виде строки для удобства. Эта строка содержит один символ, а именно pathSeparatorChar.
Конструкторы
File
public File(String pathname)
Создаёт новый объект File путём преобразования заданной строки пути в абстрактный путь. Если заданная строка пустая, результатом будет пустой абстрактный путь.
- Параметры:
-
pathname- Строка пути - Исключения:
-
NullPointerException- Если аргументpathnameравенnull
File
public File(String parent,
String child) Создаёт новый объект File из строки родительского пути и строки пути дочернего элемента.
Если parent равна null , новый объект File создаётся так, как если бы был вызван конструктор с одним аргументом File для заданной строки пути child.
В противном случае строка пути parent рассматривается как каталог, а строка пути child рассматривается как каталог или файл. Если строка пути child абсолютная, она преобразуется в относительный путь в зависимости от системы. Если parent пустая строка, новый объект File создаётся путём преобразования child в абстрактный путь и разрешения результата относительно системного каталога по умолчанию. В противном случае каждая строка пути преобразуется в абстрактный путь, и дочерний абстрактный путь разрешается относительно родительского.
- Параметры:
-
parent- Строка родительского пути -
child- Строка пути дочернего элемента - Исключения:
-
NullPointerException- Еслиchildравнаnull
File
public File(File parent,
String child) Создаёт новый объект File из родительского абстрактного пути и строки пути дочернего элемента.
Если parent равна null , новый объект File создаётся так, как если бы был вызван конструктор с одним аргументом File для заданной строки пути child.
В противном случае абстрактный путь parent рассматривается как каталог, а строка пути child рассматривается как каталог или файл. Если строка пути child абсолютная, она преобразуется в относительный путь в зависимости от системы. Если parent является пустым абстрактным путём, новый объект File создаётся путём преобразования child в абстрактный путь и разрешения результата относительно системного каталога по умолчанию. В противном случае каждая строка пути преобразуется в абстрактный путь, и дочерний абстрактный путь разрешается относительно родительского.
- Параметры:
-
parent- Родительский абстрактный путь -
child- Строка пути дочернего элемента - Исключения:
-
NullPointerException- Еслиchildравнаnull
File
public File(URI uri)
Создаёт новый объект File путём преобразования заданного URI в абстрактный путь.
Точный вид URI file: зависит от системы, поэтому преобразование, выполняемое этим конструктором, также зависит от системы.
Для данного абстрактного пути f гарантируется, что
new File( f.toURI()).equals( f.getAbsoluteFile())до тех пор, пока исходный абстрактный путь, URI и новый абстрактный путь созданы в (возможно, разных вызовах) одной виртуальной машине Java. Однако эта взаимосвязь, как правило, не сохраняется, когда URI
file: , созданный в одной виртуальной машине на одной операционной системе, преобразуется в абстрактный путь в виртуальной машине на другой операционной системе.- Параметры:
-
uri- Абсолютный иерархический URI со схемой, равной"file", ненулевым компонентом пути и неопределёнными компонентами авторизации, запроса и фрагмента - Исключения:
-
NullPointerException- Еслиuriравнаnull -
IllegalArgumentException- Если условия на параметре не соблюдаются - С момента:
- 1.4
- См. также:
-
toURI(),URI
Методы
getName
public String getName()
Возвращает имя файла или каталога, обозначенного этим абстрактным именем пути. Это просто последнее имя в последовательности имён имени пути. Если последовательность имён имени пути пуста, возвращается пустая строка.
- Возвращает:
- Имя файла или каталога, обозначенного этим абстрактным именем пути, или пустая строка, если последовательность имён этого имени пути пуста
getParent
public String getParent()
Возвращает строку имени пути родительского элемента этого абстрактного имени пути или null если это имя пути не указывает на родительский каталог.
Родитель абстрактного имени пути состоит из префикса имени пути, если таковой имеется, и каждого имени в последовательности имён имени пути, за исключением последнего. Если последовательность имён пуста, то имя пути не указывает на родительский каталог.
- Возвращает:
- Строку имени пути родительского каталога, указанного этим абстрактным именем пути, или
nullесли это имя пути не указывает на родительский каталог
getParentFile
public File getParentFile()
Возвращает абстрактное имя пути родительского элемента этого абстрактного имени пути или null если это имя пути не указывает на родительский каталог.
Родитель абстрактного имени пути состоит из префикса имени пути, если таковой имеется, и каждого имени в последовательности имён имени пути, за исключением последнего. Если последовательность имён пуста, то имя пути не указывает на родительский каталог.
- Возвращает:
- Абстрактное имя пути родительского каталога, указанного этим абстрактным именем пути, или
nullесли это имя пути не указывает на родительский каталог - С момента:
- 1.2
getPath
public String getPath()
Преобразует это абстрактное имя пути в строку имени пути. Результирующая строка использует default name-separator character для разделения имён в последовательности имён.
- Возвращает:
- Строковая форма этого абстрактного имени пути
isAbsolute
public boolean isAbsolute()
Проверяет, является ли это абстрактное имя пути абсолютным. Определение абсолютного имени пути зависит от системы. В системах UNIX имя пути является абсолютным, если его префикс — "/". В системах Microsoft Windows имя пути является абсолютным, если его префикс — спецификатор диска, за которым следует "\\", или если его префикс — "\\\\".
- Возвращает:
-
trueесли это абстрактное имя пути является абсолютным,falseв противном случае
getAbsolutePath
public String getAbsolutePath()
Возвращает абсолютную строку имени пути этого абстрактного имени пути.
Если это абстрактное имя пути уже является абсолютным, то строка имени пути просто возвращается, как если бы она возвращалась методом getPath(). Если это абстрактное имя пути является пустым абстрактным именем пути, то возвращается строка имени пути текущего каталога пользователя, которая указана системной переменной user.dir. В противном случае это имя пути разрешается по системе. В системах UNIX относительное имя пути делается абсолютным путём его разрешения относительно текущего каталога пользователя. В системах Microsoft Windows относительное имя пути делается абсолютным путём его разрешения относительно текущего каталога диска, указанного в имени пути, если таковой имеется; в противном случае он разрешается относительно текущего каталога пользователя.
- Возвращает:
- Абсолютная строка имени пути, обозначающая тот же файл или каталог, что и это абстрактное имя пути
- Исключение:
-
SecurityException- Если доступ к требуемому значению системной переменной получить невозможно. - См. также:
isAbsolute()
getAbsoluteFile
public File getAbsoluteFile()
Возвращает абсолютную форму этого абстрактного имени пути. Эквивалентно new File(this..getAbsolutePath())
- Возвращает:
- Абстрактное абсолютное имя пути, обозначающее тот же файл или каталог, что и это абстрактное имя пути
- Исключение:
-
SecurityException- Если доступ к требуемому значению системной переменной получить невозможно. - С момента:
- 1.2
getCanonicalPath
public String getCanonicalPath()
throws IOException Возвращает каноническую строку имени пути этого абстрактного имени пути.
Каноническое имя пути является как абсолютным, так и уникальным. Точное определение канонической формы зависит от системы. Этот метод сначала преобразует это имя пути в абсолютную форму при необходимости, как если бы вызывали метод getAbsolutePath(), а затем отображает его в свою уникальную форму по системе. Это обычно включает удаление избыточных имён, таких как "." и ".." из имени пути, разрешение символических ссылок (в платформах UNIX) и преобразование букв дисков в стандартный регистр (в платформах Microsoft Windows).
Каждое имя пути, обозначающее существующий файл или каталог, имеет уникальную каноническую форму. Каждое имя пути, обозначающее несуществующий файл или каталог, также имеет уникальную каноническую форму. Каноническая форма имени пути несуществующего файла или каталога может отличаться от канонической формы того же имени пути после создания файла или каталога. Аналогично, каноническая форма имени пути существующего файла или каталога может отличаться от канонической формы того же имени пути после удаления файла или каталога.
- Возвращает:
- Каноническая строка имени пути, обозначающая тот же файл или каталог, что и это абстрактное имя пути
- Исключение:
-
IOException- Если произошла ошибка ввода-вывода, что возможно, так как построение канонического имени пути может потребовать запросов к файловой системе -
SecurityException- Если доступ к требуемому значению системной переменной получить невозможно, или если существует диспетчер безопасности и его методSecurityManager.checkRead(java.io.FileDescriptor)запрещает чтение файла - С момента:
- 1.1
- См. также:
Path.toRealPath(java.nio.file.LinkOption...)
getCanonicalFile
public File getCanonicalFile()
throws IOException Возвращает каноническую форму этого абстрактного имени пути. Эквивалентно new File(this..getCanonicalPath())
- Возвращает:
- Каноническое имя пути, обозначающее тот же файл или каталог, что и это абстрактное имя пути
- Исключение:
-
IOException- Если произошла ошибка ввода-вывода, что возможно, так как построение канонического имени пути может потребовать запросов к файловой системе -
SecurityException- Если доступ к требуемому значению системной переменной получить невозможно, или если существует диспетчер безопасности и его методSecurityManager.checkRead(java.io.FileDescriptor)запрещает чтение файла - С момента:
- 1.2
- См. также:
Path.toRealPath(java.nio.file.LinkOption...)
toURL
@Deprecated
public URL toURL()
throws MalformedURLException Преобразует это абстрактное имя пути в file: URL-адрес. Точный вид URL-адреса зависит от системы. Если можно определить, что файл, обозначенный этим абстрактным именем пути, является каталогом, то результирующий URL-адрес будет заканчиваться косой чертой.
- Возвращает:
- Объект URL, представляющий эквивалентный URL-адрес файла
- Исключение:
-
MalformedURLException- Если путь нельзя обработать как URL-адрес - С момента:
- 1.2
- См. также:
-
toURI(),URI,URI.toURL(),URL
toURI
public URI toURI()
Создаёт file: URI, который представляет это абстрактное имя пути.
Точный вид URI зависит от системы. Если можно определить, что файл, обозначенный этим абстрактным именем пути, является каталогом, то результирующий URI будет заканчиваться косой чертой.
Для данного абстрактного имени пути f гарантируется, что
new File( f.toURI()).equals( f.getAbsoluteFile())до тех пор, пока исходное абстрактное имя пути, URI и новое абстрактное имя пути создаются в (возможно, различных вызовах) одной и той же виртуальной машине Java. Однако из-за зависимости от системы абстрактных имён путей это соотношение обычно не сохраняется, когда
file: URI, созданный в виртуальной машине одной операционной системы, преобразуется в абстрактное имя пути в виртуальной машине другой операционной системы. Обратите внимание, что когда это абстрактное имя пути представляет имя пути UNC, все компоненты UNC (включая компонент имени сервера) закодированы в URI пути. Компонент authority не определён, то есть он представлен как null. Класс Path определяет метод toUri для кодирования имени сервера в компонент authority результирующего URI. Метод toPath может использоваться для получения Path, представляющего это абстрактное имя пути.
- Возвращает:
- Абсолютный иерархический URI со схемой, равной
"file", путём, представляющим это абстрактное имя пути, и неопределёнными компонентами authority, query и fragment - Исключение:
-
SecurityException- Если доступ к требуемому значению системной переменной получить невозможно. - С момента:
- 1.4
- См. также:
-
File(java.net.URI),URI,URI.toURL()
canRead
public boolean canRead()
Проверяет, может ли приложение читать файл, обозначенный этим абстрактным именем пути. В некоторых платформах можно запустить виртуальную машину Java со специальными привилегиями, которые позволяют ей читать файлы, помеченные как недоступные для чтения. Следовательно, этот метод может вернуть true даже если файл не имеет разрешения на чтение.
- Возвращает:
-
trueтогда и только тогда, когда файл, заданный этим абстрактным именем пути, существует и может быть прочитан приложением;falseв противном случае - Исключение:
-
SecurityException- Если существует диспетчер безопасности и его методSecurityManager.checkRead(java.lang.String)запрещает чтение файла
canWrite
public boolean canWrite()
Проверяет, может ли приложение изменить файл, обозначенный этим абстрактным именем пути. В некоторых платформах может быть возможно запустить виртуальную машину Java со специальными привилегиями, которые позволят ей изменять файлы, помеченные как только для чтения. Вследствие этого данный метод может вернуть true даже если файл помечен как только для чтения.
- Возвращает:
-
trueтогда и только тогда, когда в файловой системе фактически содержится файл, обозначаемый этим абстрактным именем пути, и приложение разрешено писать в этот файл;falseв противном случае. - Вызывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkWrite(java.lang.String)запрещает запись в файл
exists
public boolean exists()
Проверяет, существует ли файл или каталог, обозначенный этим абстрактным именем пути.
- Возвращает:
-
trueтогда и только тогда, когда файл или каталог, обозначенный этим абстрактным именем пути, существуют;falseв противном случае - Вызывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkRead(java.lang.String)запрещает доступ для чтения к файлу или каталогу
isDirectory
public boolean isDirectory()
Проверяет, является ли файл, обозначенный этим абстрактным именем пути, каталогом.
В случаях, когда необходимо различать исключение I/O от случая, когда файл не является каталогом, или когда необходимо получить несколько атрибутов одного и того же файла одновременно, можно использовать метод Files.readAttributes.
- Возвращает:
-
trueтогда и только тогда, когда файл, обозначенный этим абстрактным именем пути, существует и является каталогом;falseв противном случае - Вызывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkRead(java.lang.String)запрещает доступ для чтения к файлу
isFile
public boolean isFile()
Проверяет, является ли файл, обозначенный этим абстрактным именем пути, обычным файлом. Файл является обычным, если он не является каталогом и, кроме того, удовлетворяет другим критериям, зависящим от системы. Любой файл, созданный приложением Java, гарантированно будет обычным файлом.
В случаях, когда необходимо различать исключение I/O от случая, когда файл не является обычным файлом, или когда необходимо получить несколько атрибутов одного и того же файла одновременно, можно использовать метод Files.readAttributes.
- Возвращает:
-
trueтогда и только тогда, когда файл, обозначенный этим абстрактным именем пути, существует и является обычным файлом;falseв противном случае - Вызывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkRead(java.lang.String)запрещает доступ для чтения к файлу
isHidden
public boolean isHidden()
Проверяет, является ли файл, заданный этим абстрактным именем пути, скрытым файлом. Точное определение скрытого файла зависит от операционной системы. В системах UNIX файл считается скрытым, если его имя начинается с символа точки ('.'). В системах Microsoft Windows файл считается скрытым, если он помечен как таковой в файловой системе.
- Возвращает:
-
trueтогда и только тогда, когда файл, обозначенный этим абстрактным именем пути, является скрытым в соответствии с соглашениями основной платформы - Вызывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkRead(java.lang.String)запрещает доступ для чтения к файлу - С:
- 1.2
lastModified
public long lastModified()
Возвращает время последнего изменения файла, обозначенного этим абстрактным именем пути.
- Примечание API:
- Хотя единицей времени возвращаемого значения является миллисекунда, разрешение значения зависит от файловой системы и может быть больше. Например, некоторые файловые системы используют временные метки в единицах секунд.
В случаях, когда необходимо различать исключение I/O от случая, когда
0Lвозвращается, или когда необходимо получить несколько атрибутов одного и того же файла одновременно, или когда требуется время последнего доступа или время создания, можно использовать методFiles.readAttributes. Если же требуется только время последнего изменения, можно использовать методFiles.getLastModifiedTimeвместо этого. - Возвращает:
- Значение типа
long, представляющее время последнего изменения файла, измеренное в миллисекундах с момента эпохи (00:00:00 GMT, 1 января 1970 г.), или0Lесли файл не существует или произошла ошибка ввода-вывода. Значение может быть отрицательным, указывая на количество миллисекунд до эпохи - Вызывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkRead(java.lang.String)запрещает доступ для чтения к файлу
length
public long length()
Возвращает длину файла, обозначенного этим абстрактным именем пути. Возвращаемое значение неопределено, если это имя пути обозначает каталог.
В случаях, когда необходимо различать исключение I/O от случая, когда 0L возвращается, или когда необходимо получить несколько атрибутов одного и того же файла одновременно, можно использовать метод Files.readAttributes.
- Возвращает:
- Длина файла, обозначенного этим абстрактным именем пути, в байтах, или
0Lесли файл не существует. В некоторых операционных системах может быть возвращено значение0Lдля имен путей, обозначающих сущности, зависящие от системы, такие как устройства или каналы. - Вызывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkRead(java.lang.String)запрещает доступ для чтения к файлу
createNewFile
public boolean createNewFile()
throws IOException Атомарно создаёт новый пустой файл с именем, заданным этим абстрактным именем пути, только если файл с таким именем ещё не существует. Проверка существования файла и создание файла, если он не существует, являются одной операцией, атомарной по отношению ко всем другим действиям с файловой системой, которые могут повлиять на файл.
Примечание: данный метод не следует использовать для блокировки файлов, так как полученный протокол не может работать надёжно. Вместо этого следует использовать механизм FileLock.
- Возвращает:
-
trueесли заданный файл не существует и был успешно создан;falseесли заданный файл уже существует - Вызывает:
-
IOException- Если произошла ошибка ввода-вывода -
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkWrite(java.lang.String)запрещает запись в файл - С:
- 1.2
delete
public boolean delete()
Удаляет файл или каталог, обозначенный этим абстрактным именем пути. Если это имя пути обозначает каталог, то каталог должен быть пустым, чтобы быть удалённым.
Обратите внимание, что класс Files определяет метод delete для выбрасывания исключения IOException в случае, когда файл не может быть удалён. Это полезно для отслеживания ошибок и диагностики причин, по которым файл не удаляется.
- Возвращает:
-
trueтогда и только тогда, когда файл или каталог успешно удалены;falseв противном случае - Вызывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkDelete(java.lang.String)запрещает удаление файла
deleteOnExit
public void deleteOnExit()
Запрашивает удаление файла или каталога, обозначенного этим абстрактным именем пути, при завершении виртуальной машины. Файлы (или каталоги) удаляются в обратном порядке их регистрации. Вызов этого метода для удаления файла или каталога, который уже зарегистрирован для удаления, не оказывает никакого эффекта. Удаление будет предпринято только при нормальном завершении виртуальной машины, как определено в спецификации языка Java.
После запроса удаления отменить запрос невозможно. Поэтому этот метод следует использовать с осторожностью.
Примечание: данный метод не следует использовать для блокировки файлов, так как полученный протокол не может работать надёжно. Вместо этого следует использовать механизм FileLock.
- Вызывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkDelete(java.lang.String)запрещает удаление файла - С:
- 1.2
- См. также:
delete()
list
public String[] list()
Возвращает массив строк, содержащих имена файлов и каталогов в каталоге, обозначенном этим абстрактным именем пути.
Если это абстрактное имя пути не обозначает каталог, то этот метод возвращает null. В противном случае возвращается массив строк, по одной для каждого файла или каталога в каталоге. Имена, обозначающие сам каталог и родительский каталог, не включаются в результат. Каждая строка представляет имя файла, а не полный путь.
Нет гарантии, что строки имён в результирующем массиве будут появляться в определённом порядке; в частности, нет гарантии, что они появятся в алфавитном порядке.
Обратите внимание, что класс Files определяет метод newDirectoryStream, который открывает каталог и перебирает имена файлов в каталоге. Это может использовать меньше ресурсов при работе с очень большими каталогами и может быть более отзывчивым при работе с удалёнными каталогами.
- Возвращает:
- Массив строк, имена файлов и каталогов в каталоге, обозначаемом этим абстрактным именем пути. Массив будет пустым, если каталог пуст. Возвращает
nullесли это абстрактное имя пути не обозначает каталог, или если произошла ошибка ввода-вывода. - Выбрасывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkRead(String)отказывает в доступе для чтения к каталогу
list
public String[] list(FilenameFilter filter)
Возвращает массив строк, имена файлов и каталогов в каталоге, обозначаемом этим абстрактным именем пути, которые удовлетворяют заданному фильтру. Поведение этого метода такое же, как у метода list(), за исключением того, что строки в возвращаемом массиве должны удовлетворять фильтру. Если заданный filter равен null, то все имена принимаются. В противном случае имя удовлетворяет фильтру только тогда, когда значение true получается при вызове метода FilenameFilter.accept(File, String) фильтра на этом абстрактном имени пути и имени файла или каталога в каталоге, который он обозначает.
- Параметры:
-
filter- Фильтр имён файлов - Возвращает:
- Массив строк, имена файлов и каталогов в каталоге, обозначаемом этим абстрактным именем пути, которые были приняты данным
filter. Массив будет пустым, если каталог пуст или если ни одно имя не было принято фильтром. Возвращаетnullесли это абстрактное имя пути не обозначает каталог, или если произошла ошибка ввода-вывода. - Выбрасывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkRead(String)отказывает в доступе для чтения к каталогу - См. также:
Files.newDirectoryStream(Path,String)
listFiles
public File[] listFiles()
Возвращает массив абстрактных имён путей, обозначающих файлы в каталоге, обозначаемом этим абстрактным именем пути.
Если это абстрактное имя пути не обозначает каталог, то этот метод возвращает null. В противном случае возвращается массив объектов File, по одному для каждого файла или каталога в каталоге. Имена путей, обозначающие сам каталог и родительский каталог, не включаются в результат. Каждое полученное абстрактное имя пути строится из этого абстрактного имени пути с использованием конструктора File(File, String). Следовательно, если это имя пути абсолютное, то каждое полученное имя пути будет абсолютным; если это имя пути относительное, то каждое полученное имя пути будет относительным к тому же каталогу.
Нет гарантии, что имена строк в результирующем массиве будут появляться в определённом порядке; они не гарантированы, в частности, в алфавитном порядке.
Обратите внимание, что класс Files определяет метод newDirectoryStream для открытия каталога и итерации по именам файлов в каталоге. Это может использовать меньше ресурсов при работе с очень большими каталогами.
- Возвращает:
- Массив абстрактных имён путей, обозначающих файлы и каталоги в каталоге, обозначаемом этим абстрактным именем пути. Массив будет пустым, если каталог пуст. Возвращает
nullесли это абстрактное имя пути не обозначает каталог, или если произошла ошибка ввода-вывода. - Выбрасывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkRead(String)отказывает в доступе для чтения к каталогу - С:
- 1.2
listFiles
public File[] listFiles(FilenameFilter filter)
Возвращает массив абстрактных имён путей, обозначающих файлы и каталоги в каталоге, обозначаемом этим абстрактным именем пути, которые удовлетворяют заданному фильтру. Поведение этого метода такое же, как у метода listFiles(), за исключением того, что имена путей в возвращаемом массиве должны удовлетворять фильтру. Если заданный filter равен null, то все имена путей принимаются. В противном случае имя пути удовлетворяет фильтру, только если значение true получается при вызове метода FilenameFilter.accept(File, String) фильтра на этом абстрактном имени пути и имени файла или каталога в каталоге, который он обозначает.
- Параметры:
-
filter- Фильтр имён файлов - Возвращает:
- Массив абстрактных имён путей, обозначающих файлы и каталоги в каталоге, обозначаемом этим абстрактным именем пути. Массив будет пустым, если каталог пуст. Возвращает
nullесли это абстрактное имя пути не обозначает каталог, или если произошла ошибка ввода-вывода. - Выбрасывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkRead(String)отказывает в доступе для чтения к каталогу - С:
- 1.2
- См. также:
Files.newDirectoryStream(Path,String)
listFiles
public File[] listFiles(FileFilter filter)
Возвращает массив абстрактных имён путей, обозначающих файлы и каталоги в каталоге, обозначаемом этим абстрактным именем пути, которые удовлетворяют заданному фильтру. Поведение этого метода такое же, как у метода listFiles(), за исключением того, что имена путей в возвращаемом массиве должны удовлетворять фильтру. Если заданный filter равен null, то все имена путей принимаются. В противном случае имя пути удовлетворяет фильтру только тогда, когда значение true получается при вызове метода FileFilter.accept(File) фильтра на имени пути.
- Параметры:
-
filter- Фильтр файлов - Возвращает:
- Массив абстрактных имён путей, обозначающих файлы и каталоги в каталоге, обозначаемом этим абстрактным именем пути. Массив будет пустым, если каталог пуст. Возвращает
nullесли это абстрактное имя пути не обозначает каталог, или если произошла ошибка ввода-вывода. - Выбрасывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkRead(String)отказывает в доступе для чтения к каталогу - С:
- 1.2
- См. также:
Files.newDirectoryStream(Path,java.nio.file.DirectoryStream.Filter)
mkdir
public boolean mkdir()
Создаёт каталог, названный этим абстрактным именем пути.
- Возвращает:
-
trueтолько в том случае, если каталог был создан;falseв противном случае - Выбрасывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkWrite(java.lang.String)не разрешает создание названного каталога
mkdirs
public boolean mkdirs()
Создаёт каталог, названный этим абстрактным именем пути, включая любые необходимые, но несуществующие родительские каталоги. Обратите внимание, что если эта операция завершается неудачей, она может успешно создать некоторые из необходимых родительских каталогов.
- Возвращает:
-
trueтолько в том случае, если каталог был создан, вместе со всеми необходимыми родительскими каталогами;falseв противном случае - Выбрасывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkRead(java.lang.String)не разрешает проверку существования названного каталога и всех необходимых родительских каталогов; или если методSecurityManager.checkWrite(java.lang.String)не разрешает создание названного каталога и всех необходимых родительских каталогов
renameTo
public boolean renameTo(File dest)
Переименовывает файл, обозначаемый этим абстрактным именем пути.
Многие аспекты поведения этого метода по своей сути зависят от платформы: операция переименования может не быть в состоянии переместить файл из одной файловой системы в другую, она может быть не атомарной, и она может не удаться, если файл с целевым абстрактным именем пути уже существует. Возвращаемое значение следует всегда проверять, чтобы убедиться, что операция переименования прошла успешно.
Обратите внимание, что класс Files определяет метод move для перемещения или переименования файла независимо от платформы.
- Параметры:
-
dest- Новое абстрактное имя пути для названного файла - Возвращает:
-
trueтолько в том случае, если переименование прошло успешно;falseв противном случае - Выбрасывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkWrite(java.lang.String)отказывает в доступе для записи к одному из старых или новых имён путей -
NullPointerException- Если параметрdestравенnull
setLastModified
public boolean setLastModified(long time)
Устанавливает время последнего изменения файла или каталога, названного этим абстрактным именем пути.
Все платформы поддерживают время изменения файла с точностью до секунды, но некоторые предоставляют большую точность. Аргумент будет усечён для соответствия поддерживаемой точности. Если операция выполняется успешно и никакие промежуточные операции с файлом не происходят, то следующий вызов метода lastModified() вернёт (возможно, усечённый) аргумент time, который был передан в этот метод.
- Параметры:
-
time- Новое время последнего изменения, измеряемое в миллисекундах с эпохи (00:00:00 GMT, 1 января 1970 года) - Возвращает:
-
trueтолько в том случае, если операция выполнена успешно;falseв противном случае - Выбрасывает:
-
IllegalArgumentException- Если аргумент отрицательный -
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkWrite(java.lang.String)отказывает в доступе для записи к названному файлу - С:
- 1.2
setReadOnly
public boolean setReadOnly()
Помечает файл или директорию, указанную этим абстрактным именем пути, так что разрешены только операции чтения. После вызова этого метода файл или директория не будут изменены, пока не будут удалены или помечены для разрешения доступа для записи. На некоторых платформах можно запустить виртуальную машину Java со специальными привилегиями, которые позволяют ей изменять файлы, помеченные как только для чтения. Возможность удаления файла или директории, только для чтения, зависит от используемой системы.
- Возвращает:
-
trueтолько в том случае, если операция выполнена успешно;falseв противном случае - Выбрасывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkWrite(java.lang.String)запрещает доступ для записи к указанному файлу - С:
- 1.2
setWritable
public boolean setWritable(boolean writable,
boolean ownerOnly) Устанавливает разрешение на запись для владельца или всех пользователей для этого абстрактного имени пути. На некоторых платформах можно запустить виртуальную машину Java со специальными привилегиями, которые позволяют ей изменять файлы, запрещающие операции записи.
Класс Files определяет методы, которые работают с атрибутами файлов, включая разрешения на доступ к файлам. Это может быть использовано, когда требуется более тонкое управление разрешениями на доступ к файлам.
- Параметры:
-
writable- Еслиtrue, устанавливает разрешение доступа для разрешения операций записи; еслиfalseдля запрета операций записи -
ownerOnly- Еслиtrue, разрешение на запись применяется только к разрешению записи владельца; в противном случае оно применяется ко всем. Если файловая система не может отличить разрешение записи владельца от разрешения записи других пользователей, то разрешение будет применено ко всем, независимо от этого значения. - Возвращает:
-
trueтолько в том случае, если операция выполнена успешно. Операция завершится ошибкой, если у пользователя нет разрешения на изменение разрешений доступа к этому абстрактному имени пути. - Выбрасывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkWrite(java.lang.String)запрещает доступ для записи к указанному файлу - С:
- 1.6
setWritable
public boolean setWritable(boolean writable)
Удобный метод для установки разрешения на запись для владельца этого абстрактного имени пути. На некоторых платформах можно запустить виртуальную машину Java со специальными привилегиями, которые позволяют ей изменять файлы, запрещающие операции записи.
Вызов этого метода в форме file.setWritable(arg) ведет себя точно так же, как вызов
file.setWritable(arg, true)
- Параметры:
-
writable- Еслиtrue, устанавливает разрешение доступа для разрешения операций записи; еслиfalseдля запрета операций записи - Возвращает:
-
trueтолько в том случае, если операция выполнена успешно. Операция завершится ошибкой, если у пользователя нет разрешения на изменение разрешений доступа к этому абстрактному имени пути. - Выбрасывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkWrite(java.lang.String)запрещает доступ для записи к файлу - С:
- 1.6
setReadable
public boolean setReadable(boolean readable,
boolean ownerOnly) Устанавливает разрешение на чтение для владельца или всех пользователей для этого абстрактного имени пути. На некоторых платформах можно запустить виртуальную машину Java со специальными привилегиями, которые позволяют ей читать файлы, помеченные как недоступные для чтения.
Класс Files определяет методы, которые работают с атрибутами файлов, включая разрешения на доступ к файлам. Это может быть использовано, когда требуется более тонкое управление разрешениями на доступ к файлам.
- Параметры:
-
readable- Еслиtrue, устанавливает разрешение доступа для разрешения операций чтения; еслиfalseдля запрета операций чтения -
ownerOnly- Еслиtrue, разрешение на чтение применяется только к разрешению чтения владельца; в противном случае оно применяется ко всем. Если файловая система не может отличить разрешение чтения владельца от разрешения чтения других пользователей, то разрешение будет применено ко всем, независимо от этого значения. - Возвращает:
-
trueтолько в том случае, если операция выполнена успешно. Операция завершится ошибкой, если у пользователя нет разрешения на изменение разрешений доступа к этому абстрактному имени пути. Еслиreadableравноfalse, а используемая файловая система не реализует разрешение на чтение, то операция завершится ошибкой. - Выбрасывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkWrite(java.lang.String)запрещает доступ для записи к файлу - С:
- 1.6
setReadable
public boolean setReadable(boolean readable)
Удобный метод для установки разрешения на чтение для владельца этого абстрактного имени пути. На некоторых платформах можно запустить виртуальную машину Java со специальными привилегиями, которые позволяют ей читать файлы, помеченные как недоступные для чтения.
Вызов этого метода в форме file.setReadable(arg) ведет себя точно так же, как вызов
file.setReadable(arg, true)
- Параметры:
-
readable- Еслиtrue, устанавливает разрешение доступа для разрешения операций чтения; еслиfalseдля запрета операций чтения - Возвращает:
-
trueтолько в том случае, если операция выполнена успешно. Операция завершится ошибкой, если у пользователя нет разрешения на изменение разрешений доступа к этому абстрактному имени пути. Еслиreadableравноfalse, а используемая файловая система не реализует разрешение на чтение, то операция завершится ошибкой. - Выбрасывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkWrite(java.lang.String)запрещает доступ для записи к файлу - С:
- 1.6
setExecutable
public boolean setExecutable(boolean executable,
boolean ownerOnly) Устанавливает разрешение на выполнение для владельца или всех пользователей для этого абстрактного имени пути. На некоторых платформах можно запустить виртуальную машину Java со специальными привилегиями, которые позволяют ей выполнять файлы, которые не помечены как исполняемые.
Класс Files определяет методы, которые работают с атрибутами файлов, включая разрешения на доступ к файлам. Это может быть использовано, когда требуется более тонкое управление разрешениями на доступ к файлам.
- Параметры:
-
executable- Еслиtrue, устанавливает разрешение доступа для разрешения операций выполнения; еслиfalseдля запрета операций выполнения -
ownerOnly- Еслиtrue, разрешение на выполнение применяется только к разрешению выполнения владельца; в противном случае оно применяется ко всем. Если файловая система не может отличить разрешение выполнения владельца от разрешения выполнения других пользователей, то разрешение будет применено ко всем, независимо от этого значения. - Возвращает:
-
trueтолько в том случае, если операция выполнена успешно. Операция завершится ошибкой, если у пользователя нет разрешения на изменение разрешений доступа к этому абстрактному имени пути. Еслиexecutableравноfalse, а используемая файловая система не реализует разрешение на выполнение, то операция завершится ошибкой. - Выбрасывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkWrite(java.lang.String)запрещает доступ для записи к файлу - С:
- 1.6
setExecutable
public boolean setExecutable(boolean executable)
Удобный метод для установки разрешения на выполнение для владельца этого абстрактного имени пути. На некоторых платформах можно запустить виртуальную машину Java со специальными привилегиями, которые позволяют ей выполнять файлы, которые не помечены как исполняемые.
Вызов этого метода в форме file.setExcutable(arg) ведет себя точно так же, как вызов
file.setExecutable(arg, true)
- Параметры:
-
executable- Еслиtrue, устанавливает разрешение доступа для разрешения операций выполнения; еслиfalseдля запрета операций выполнения - Возвращает:
-
trueтолько в том случае, если операция выполнена успешно. Операция завершится ошибкой, если у пользователя нет разрешения на изменение разрешений доступа к этому абстрактному имени пути. Еслиexecutableравноfalse, а используемая файловая система не реализует разрешение на выполнение, то операция завершится ошибкой. - Выбрасывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkWrite(java.lang.String)запрещает доступ для записи к файлу - С:
- 1.6
canExecute
public boolean canExecute()
Проверяет, может ли приложение выполнить файл, обозначенный этим абстрактным именем пути. На некоторых платформах можно запустить виртуальную машину Java со специальными привилегиями, которые позволяют ей выполнять файлы, которые не помечены как исполняемые. Вследствие этого этот метод может вернуть true даже если файл не имеет разрешения на выполнение.
- Возвращает:
-
trueтолько в том случае, если абстрактное имя пути существует и приложение разрешено для выполнения файла - Выбрасывает:
-
SecurityException- Если существует менеджер безопасности, и его методSecurityManager.checkExec(java.lang.String)запрещает доступ для выполнения файла - С:
- 1.6
listRoots
public static File[] listRoots()
Перечислить доступные корневые каталоги файловой системы.
Конкретная платформа Java может поддерживать ноль или более иерархически организованных файловых систем. Каждая файловая система имеет каталог root, из которого можно получить доступ ко всем другим файлам в этой файловой системе. Например, платформы Windows имеют корневой каталог для каждого активного диска; платформы UNIX имеют один корневой каталог, а именно "/". Набор доступных корневых каталогов файловой системы зависит от различных операций на уровне системы, таких как вставка или извлечение съемных носителей и отключение или размонтирование физических или виртуальных дисков.
Этот метод возвращает массив объектов File, которые обозначают корневые каталоги доступных корневых каталогов файловой системы. Гарантируется, что каноническое имя файла, физически присутствующего на локальной машине, будет начинаться с одного из корней, возвращаемых этим методом.
Каноническое имя файла, который находится на другой машине и к которому осуществляется доступ через протокол удаленной файловой системы, такой как SMB или NFS, может или не может начинаться с одного из корней, возвращаемых этим методом. Если имя пути удаленного файла синтаксически неотличимо от имени пути локального файла, то оно будет начинаться с одного из корней, возвращаемых этим методом. Таким образом, например, объекты File, обозначающие корневые каталоги сопоставленных сетевых дисков платформы Windows, будут возвращаться этим методом, в то время как объекты File, содержащие имена путей UNC, этим методом не возвращаются.
В отличие от большинства методов в этом классе, этот метод не выбрасывает исключений безопасности. Если менеджер безопасности существует и его метод SecurityManager.checkRead(String) запрещает чтение в определенном корневом каталоге, то этот каталог не будет отображаться в результате.
- Возвращает:
- Массив объектов
File, обозначающих доступные корневые каталоги файловой системы, илиnull, если набор корней определить не удалось. Массив будет пустым, если корневых каталогов файловой системы нет. - С:
- 1.2
- См. также:
FileStore
getTotalSpace
public long getTotalSpace()
Возвращает размер раздела, названного этим абстрактным именем пути.
- Возвращает:
- Размер раздела в байтах или
0L, если это абстрактное имя пути не указывает на раздел - Исключения:
-
SecurityException- Если установлен менеджер безопасности, и он запрещаетRuntimePermission("getFileSystemAttributes")или его методSecurityManager.checkRead(String)запрещает чтение файла, указанного этим абстрактным именем пути - С:
- 1.6
getFreeSpace
public long getFreeSpace()
Возвращает количество неиспользуемых байтов в разделе, названном этим абстрактным именем пути.
Возвращаемое количество неиспользуемых байтов является подсказкой, но не гарантией, что можно использовать большую или любую часть этих байтов. Количество неиспользуемых байтов, скорее всего, будет точным сразу после этого вызова. Вероятно, оно станет неточным из-за любых внешних операций ввода-вывода, включая те, которые выполняются в системе за пределами этой виртуальной машины. Этот метод не гарантирует, что операции записи в эту файловую систему будут успешными.
- Возвращает:
- Количество неиспользуемых байтов в разделе или
0L, если абстрактное имя пути не указывает на раздел. Это значение будет меньше или равно общему размеру файловой системы, возвращаемому методомgetTotalSpace(). - Исключения:
-
SecurityException- Если установлен менеджер безопасности, и он запрещаетRuntimePermission("getFileSystemAttributes")или его методSecurityManager.checkRead(String)запрещает чтение файла, указанного этим абстрактным именем пути - С:
- 1.6
getUsableSpace
public long getUsableSpace()
Возвращает количество байтов, доступных для этой виртуальной машины в разделе, названном этим абстрактным именем пути. Когда это возможно, этот метод проверяет разрешения на запись и другие ограничения операционной системы и, следовательно, обычно предоставляет более точную оценку того, сколько новых данных фактически можно записать, чем метод getFreeSpace().
Возвращаемое количество доступных байтов является подсказкой, но не гарантией, что можно использовать большую или любую часть этих байтов. Количество неиспользуемых байтов, скорее всего, будет точным сразу после этого вызова. Вероятно, оно станет неточным из-за любых внешних операций ввода-вывода, включая те, которые выполняются в системе за пределами этой виртуальной машины. Этот метод не гарантирует, что операции записи в эту файловую систему будут успешными.
- Возвращает:
- Количество доступных байтов в разделе или
0L, если абстрактное имя пути не указывает на раздел. В системах, где эта информация недоступна, этот метод будет эквивалентен вызову методаgetFreeSpace(). - Исключения:
-
SecurityException- Если установлен менеджер безопасности, и он запрещаетRuntimePermission("getFileSystemAttributes")или его методSecurityManager.checkRead(String)запрещает чтение файла, указанного этим абстрактным именем пути - С:
- 1.6
createTempFile
public static File createTempFile(String prefix,
String suffix,
File directory)
throws IOException Создает новый пустой файл в указанном каталоге, используя заданные префикс и суффикс для генерации его имени. Если этот метод возвращает успех, то гарантируется, что:
- Файл, указанный возвращаемым абстрактным именем пути, не существовал до вызова этого метода, и
- Ни этот метод, ни ни один из его вариантов не вернут то же абстрактное имя пути снова в текущем вызове виртуальной машины.
deleteOnExit(). Аргумент prefix должен быть длиной не менее трех символов. Рекомендуется, чтобы префикс был короткой, осмысленной строкой, например, "hjb" или "mail". Аргумент suffix может быть null, в этом случае будет использоваться суффикс ".tmp".
Для создания нового файла префикс и суффикс могут быть сначала скорректированы в соответствии с ограничениями базовой платформы. Если префикс слишком длинный, он будет усечен, но его первые три символа всегда будут сохранены. Если суффикс слишком длинный, он также будет усечен, но если он начинается с символа точки ('.' ), то точка и первые три символа после нее всегда будут сохранены. После этих корректировок имя нового файла будет сгенерировано путем конкатенации префикса, пяти или более сгенерированных внутри символов и суффикса.
Если аргумент directory равен null, то будет использован системно-зависимый каталог временных файлов по умолчанию. Каталог временных файлов по умолчанию задается системной переменной java.io.tmpdir. В системах UNIX значение этой переменной обычно "/tmp" или "/var/tmp"; в системах Microsoft Windows обычно "C:\\WINNT\\TEMP". Разное значение может быть задано этой системной переменной при запуске виртуальной машины Java, но программные изменения в этой переменной не гарантируют никакого влияния на каталог временных файлов, используемый этим методом.
- Параметры:
-
prefix- Строка префикса, используемая для генерации имени файла; должна быть длиной не менее трех символов -
suffix- Строка суффикса, используемая для генерации имени файла; может бытьnull, в этом случае будет использован суффикс".tmp" -
directory- Каталог, в котором должен быть создан файл, илиnull, если должен быть использован каталог временных файлов по умолчанию - Возвращает:
- Абстрактное имя пути, обозначающее только что созданный пустой файл
- Исключения:
-
IllegalArgumentException- Если аргументprefixсодержит меньше трех символов -
IOException- Если файл не удалось создать -
SecurityException- Если менеджер безопасности существует и его методSecurityManager.checkWrite(java.lang.String)не разрешает создание файла - С:
- 1.2
createTempFile
public static File createTempFile(String prefix,
String suffix)
throws IOException Создает пустой файл в каталоге временных файлов по умолчанию, используя заданный префикс и суффикс для генерации его имени. Вызов этого метода эквивалентен вызову createTempFile(prefix, suffix, null).
Метод Files.createTempFile предоставляет альтернативный метод создания пустого файла в каталоге временных файлов. Файлы, созданные этим методом, могут иметь более ограниченные права доступа к файлам, созданным этим методом, и поэтому могут быть более подходящими для приложений, чувствительных к безопасности.
- Параметры:
-
prefix- Строка префикса, используемая для генерации имени файла; должна быть длиной не менее трех символов -
suffix- Строка суффикса, используемая для генерации имени файла; может бытьnull, в этом случае будет использован суффикс".tmp" - Возвращает:
- Абстрактное имя пути, обозначающее только что созданный пустой файл
- Исключения:
-
IllegalArgumentException- Если аргументprefixсодержит меньше трех символов -
IOException- Если файл не удалось создать -
SecurityException- Если менеджер безопасности существует и его методSecurityManager.checkWrite(java.lang.String)не разрешает создание файла - С:
- 1.2
- См. также:
Files.createTempDirectory(String,FileAttribute[])
compareTo
public int compareTo(File pathname)
Сравнивает два абстрактных имени пути лексикографически. Порядок, определенный этим методом, зависит от базовой системы. В системах UNIX регистр символов при сравнении имен путей имеет значение; в системах Microsoft Windows - нет.
- Указано:
-
compareToв интерфейсеComparable<File> - Параметры:
-
pathname- Абстрактный путь, который необходимо сравнить с этим абстрактным путем - Возвращает:
- Ноль, если аргумент равен этому абстрактному пути, значение меньше нуля, если этот абстрактный путь лексикографически меньше аргумента, или значение больше нуля, если этот абстрактный путь лексикографически больше аргумента
- С тех пор:
- 1.2
equals
public boolean equals(Object obj)
Проверяет этот абстрактный путь на равенство заданному объекту. Возвращает true тогда и только тогда, когда аргумент не null и является абстрактным путем, обозначающим тот же файл или каталог, что и этот абстрактный путь. Равенство двух абстрактных путей зависит от используемой системы. В системах UNIX регистр букв при сравнении путей имеет значение; в системах Microsoft Windows — нет.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- Объект для сравнения с этим абстрактным путем - Возвращает:
-
trueтогда и только тогда, когда объекты одинаковы;falseв противном случае - См. также:
-
Object.hashCode(),HashMap
hashCode
public int hashCode()
Вычисляет хеш-код для этого абстрактного пути. Поскольку равенство абстрактных путей зависит от системы, то же самое относится и к вычислению их хеш-кодов. В системах UNIX хеш-код абстрактного пути равен исключающему ИЛИ хеш-кода его строки пути и десятичного значения 1234321. В системах Microsoft Windows хеш-код равен исключающему ИЛИ хеш-кода строки его пути, преобразованной в нижний регистр, и десятичного значения 1234321. При переводе строки пути в нижний регистр регион не учитывается.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- Хеш-код для этого абстрактного пути
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
toString
public String toString()
Возвращает строку пути этого абстрактного пути. Это просто строка, возвращаемая методом getPath().
- Переопределяет:
-
toStringв классеObject - Возвращает:
- Строковое представление этого абстрактного пути
toPath
public Path toPath()
Возвращает объект java.nio.file.Path, созданный из этого абстрактного пути. Результирующий Path связан с default-filesystem.
Первый вызов этого метода работает так, как будто вызов эквивалентен вычислению выражения:
FileSystems.getDefault().getPath(this.getPath());Последующие вызовы этого метода возвращают тот же самый
Path. Если этот абстрактный путь является пустым абстрактным путем, то этот метод возвращает Path для доступа к текущей директории пользователя.
- Возвращает:
- объект
Path, созданный из этого абстрактного пути - Исключения:
-
InvalidPathException- если объектPathне может быть создан из абстрактного пути (см.FileSystem.getPath) - С тех пор:
- 1.7
- См. также:
Path.toFile()
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/File.html