Класс File
- 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 для обеспечения более эффективного и расширенного доступа к дополнительным операциям с файлами, атрибутам файлов и исключениям ввода-вывода, которые помогают диагностировать ошибки, когда операция с файлом завершается неудачно.
- С:
- JDK1.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() Создает |
URL |
toURL() |
Методы, унаследованные от класса 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", ненулевой компонент пути и неопределёнными компонентами authority, query и fragment - Исключения:
-
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) - С:
- JDK1.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 Устаревший. Этот метод не автоматически экранирует символы, недопустимые в URL. Рекомендуется, чтобы новый код преобразовывал абстрактное имя пути в URL, сначала преобразовав его в URI с помощью метода toURI, а затем преобразовав URI в URL с помощью метода URI.toURL.
Преобразует это абстрактное имя пути в URL. Точная форма URL зависит от системы. Если можно определить, что файл, обозначенный этим абстрактным именем пути, является директорией, то результирующий URL будет заканчиваться косой чертой.
- Возвращает:
- Объект URL, представляющий эквивалентный URL файла
- Выбрасывает:
-
MalformedURLException- Если путь не может быть распарсен как URL - С:
- 1.2
- См. также:
-
toURI(),URI,URI.toURL(),URL
toURI
public URI toURI()
Создаёт URI, представляющий это абстрактное имя пути.
Точная форма URI зависит от системы. Если можно определить, что файл, обозначенный этим абстрактным именем пути, является директорией, то результирующий URI будет заканчиваться косой чертой.
Для данного абстрактного имени пути f гарантируется, что
new File( f.toURI()).equals( f.getAbsoluteFile())до тех пор, пока исходное абстрактное имя пути, URI и новое абстрактное имя пути созданы в (возможно, разных вызовах) одной и той же виртуальной машине Java. Однако из-за зависимости от системы абстрактных имен путей это соотношение обычно не выполняется, когда 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()
Проверяет, является ли файл, обозначенный этим абстрактным именем пути, директорией.
Если необходимо различать исключение ввода-вывода от случая, когда файл не является директорией, или если требуется несколько атрибутов одного и того же файла одновременно, то можно использовать метод Files.readAttributes.
- Возвращает:
-
trueтогда и только тогда, когда файл, обозначенный этим абстрактным именем пути, существует и является директорией;falseв противном случае - Выбрасывает:
-
SecurityException- Если существует менеджер безопасности, и его методотклоняет доступ для чтения к файлуSecurityManager.checkRead(java.lang.String)
isFile
public boolean isFile()
Проверяет, является ли файл, обозначенный этим абстрактным именем пути, обычным файлом. Файл является обычным, если он не является директорией и, кроме того, удовлетворяет другим критериям, зависящим от системы. Любой файл, созданный приложением Java, гарантированно является обычным файлом.
Если необходимо различать исключение ввода-вывода от случая, когда файл не является обычным файлом, или если требуется несколько атрибутов одного и того же файла одновременно, то можно использовать метод 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()
Возвращает время последнего изменения файла, обозначенного этим абстрактным именем пути.
Если необходимо различать исключение ввода-вывода от случая, когда возвращается 0L, или если требуется несколько атрибутов одного и того же файла одновременно, или если необходимо время последнего доступа или время создания, то можно использовать метод Files.readAttributes.
- Возвращает:
- Значение типа
long, представляющее время последнего изменения файла, измеренное в миллисекундах с момента эпохи (00:00:00 GMT, 1 января 1970 г.), или0L, если файл не существует или произошла ошибка ввода-вывода - Выбрасывает:
-
SecurityException- Если существует менеджер безопасности, и его методзапрещает чтение файлаSecurityManager.checkRead(java.lang.String)
length
public long length()
Возвращает длину файла, обозначенного этим абстрактным именем пути. Значение возврата не определено, если этот путь указывает на каталог.
В тех случаях, когда необходимо различать исключение ввода-вывода от случая, когда возвращается значение 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 может поддерживать ноль или более иерархически организованных файловых систем. Каждая файловая система имеет корневую директорию, из которой можно получить доступ ко всем остальным файлам в этой файловой системе. Например, платформы 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()
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.