WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Архив » Как удалить директорию в Java?

Как удалить директорию в Java?


Дата публикации: 17-03-2013

JDK 1.0 не поддерживает удаление директорий. JDK 1.1 поддерживает удаление директорий при помощи метода public boolean delete() класса

java.io.File
Убедитесь, что в директории, которую вы собираетесь удалить, нет ни одного открытого потока (stream). Выполните команду close() для всех потоков, даже если читаемый файл закончился (the underlying file is gone).


Как я могу узнать, сколько свободно дискового пространства?

Hа данный момент не существует хорошего API (программного интерфейса) для инспектирования системы. В Java невозможно контролировать процессы или смотреть на ресурсы системы. Вы можете использовать Runtime.getRuntime().exec() для вызова "df" в юниксе или "dir" в Windows.

С другой стороны, взгляните на JConfig по адресу: http://www.tolstoy.com/samizdat/jconfig.html JConfig - это межплатформенная библиотека, которая заполняет многие промежутки в Java API, и дает возможность работать с файлами, процессами, мониторами и т.д. в манере, напоминающей Windows или Mac.


Как я могу получить список файлов в каталоге C:\ ?

Кажущийся очевидным подход - вызвать File.list("C:\") - не работает. Для этого есть две причины. Во-первых, \ (slash) является escape-символом в Java, то есть, если вам нужен этот символ, надо написать его дважды. Во-вторых, необходимо указать имя директории, то есть точку. Объединив все это вместе, увидим, что любой из следующих вызовов работает:

File.list("C:\\.");
или

File.list("C:/.");
Замечание: разделитель "/" работает точно так же, как и "\" во многих программах и системных вызовах Windows. Дело в том, что в прародителе DOS - операционной системе CP/M - не было директорий и, следовательно, разделителей в именах файлов. Прямой слэш "/" был уже задействован для передачи опций командам CP/M; обратный слэш "\" стали использовать как разделитель директорий в именах файлов, однако оболочка понимает и "/" для совместимости с другими операционными системами.


В чем разница между различными форматами ZIP: ZIP, GZIPи PKZIP?

Zip - формат архивного файла, популярный на PC, который содержит несколько сжатых файлов внутри.
GZIP - это GNU ZIP. Реально это подмножество формата ZIP с одним файлом внутри. В GZIP нельзя поместить целую директорию, а можно только один файл.

PKZIP - набор коммерческих программ для создания файлов Zip. Все три используют алгоритм сжатия, основанный на LZ77. Этот метод сжатия также используется библиотекой ZLIB и, следовательно, графическим форматом PNG (который использует ZLIB). PNG - Portable Network Graphics - предоставляет свободную, не защищенную какими-либо патентами, замену GIF и TIFF.

Альтернативная технология сжатия, LZW, защищена патентом Unisys. LZW используется в файлах GIF и в команде Unix'а compress. К счастью, будучи свободным от патентных зависимостей, LZ77 также дает лучшее сдатие, чем LZW. LZW - начальные буквы фамилий трех ученых, разработавших алгоритм (Lempel, Ziv, Welch).

Основные классы (они находятся в java.util.zip), поддерживающие формат LZ77 - Deflater и Inflater. Они используются классами DeflaterOutputStream и InflaterInputStream. В пакете java.util.zip есть так же классы GZIPInputStream и ZipInputStream, унаследованные от InflaterInputStream.

PKZIP - коммерческая программа для DOS, Windows и OS/2, продаваемая PKWARE.

Файлы Jar (Java Archive) хранятся в формате ZIP, но существует одно отличие - не сохраняются атрибуты файлов. Известно, что некоторые версии WinZip неправильно поддерживают полный формат ZIP. Лучше использовать InfoZIP или PKZIP.


Как мне прочитать файл, хранящийся в JAR?

Самый лучший способ это использование Class.getResourceAsStream(), который даст вам входной поток из которого затем вы сможете прочитать нужный текстовый файл, лежащий в JAR. Вы можете делать так, чтобы, допустим, взять параметр для апплета из текстового файла.
Другие сайты:
cмотрите http://www.uq.net.au/~zzcmumme для примеров.


Существуют ли списки рассылок информации по Java?

Достаточно полный их перечень можно найти здесь: http://java.miningco.com/msub7.htm


Где можно найти окончательные спецификации Java Language?

В общем случае на http://java.sun.com.

В частности:

http://java.sun.com/docs/books/jls/html/index.html (Java 1.0)...

...описание внутренних классов Java 1.1:

http://java.sun.com/products/jdk/1.1/docs/guide/innerclasses/spec/innerclasses.doc.html

...обновления Java 1.1:

http://java.sun.com/docs/books/jls/html/1.1Update.html

...Java API:

http://java.sun.com/products/jdk/1.1/docs/api

Эти материалы также доступны в виде книг (за подробностями обращайтесь на веб-сервер). Также рекомендуем посмотреть "Разъяснения и Дополнения" ("Clarifications and Amendments"): http://java.sun.com/docs/books/jls/clarify.html.

Спецификации виртуальной машины можно найти на: http://docs.sun.com:80/ab2/coll.127.1/@Ab2CollToc?subject=java


Где я могу найти информацию о проектирующихся Java API?

JavaSoft придерживается политики создания API совместно с лидерами разработок в области Java, с последующей публикацией черновых спецификаций для общего рассмотрения и обсуждения. Планы JavaSoft насчет новых API ищите на http://java.sun.com:80/products/api-overview/index.html
APIs находящиеся под рассмотрением для включения в JDK 1.2 находятся на: http://java.sun.com/products/jdk/preview/docs/


Давно и безуспешно разыскиваю "Naming Conventions" в стиле Java.

Посмотрите секцию "Naming Conventions" в спецификации языка:

http://java.sun.com/docs/books/jls/html/6.doc.html#11186

Также гляньте на черновой вариант стандарта кодирования на Java (автор - Doug Lea):

http://gee.cs.oswego.edu/dl/html/javaCodingStd.html


Где бы посмотреть список ошибок, найденных в JDK?

Hа Java Developer Connection http://java.sun.com/jdc перечислены все известные Sun ошибки в Java, за исключением ошибок в системе безопасности. Hа открытую публикацию ошибок в системе безопасности наложил вето Сановский legal department. Если вы не обнаружили своей ошибки в списке - можно послать рапорт об ошибке через http://java.sun.com:80/cgi-bin/bugreport.cgi

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

Там же можно составить RFE (Request For Enhancement - запрос на улучшение) или поднять вопрос об удобстве использования какой-либо возможности. Возможно даже проголосовать за смену приоритета на исправление конкретной ошибки. Зарегистрируйтесь на Java Developer Connection (халява, сэр): http://java.sun.com/jdc. Затем ступайте на http://developer.javasoft.com/developer/bugParade/#votes

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Март 2017 (1)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта

Хотите продать свой сайт?
- Мы быстро и удобно для Вас сможем его купить:
  • Заявка на продажу сайта
  • Раcсматриваем цены на каждый сайт в индивидуальном порядке.

    Случайная цитата

    Натан Ротшильд:

    "Кто владеет информацией – тот владеет миром."

    Опрос

    Какой браузер Вы используете?

    Internet Explorer
    Google Chrome
    Mozilla Firefox
    Netscape Navigator
    Maxthon Browser
    Opera
    Mozilla Suite
    SeaMonkey
    K-Meleon
    Safari
    Amaya
    Avant Browser
    SlimBrowser
    Другой...