| |
ому пути
File fdir = new File(sDirPath);
// Если указанный каталог не существует,
// выводим сообщение и завершаем работу
if(!fdir.exists())
{
System.out.println("Directory not found: "
+ sDirPath);
}
// Если путь существует, определяем параметры
// соответствующего файла или каталога
else
{
// Проверяем, был указан файл или каталог
if(!fdir.isDirectory())
System.out.println("File " + sDirPath +
" is not directory");
// Если указан каталог, получаем его содержимое
else
{
// Если маска не задана, вызываем метод list
// без параметров
if(sMask == null)
dirlist = fdir.list();
// Вызываем метод list, создавая фильтр
else
dirlist = fdir.list(new MaskFilter(sMask));
// Сканируем полученный массив
for (int i = 0; i < dirlist.length; i++)
{
// Для каждого объекта, обнаруженного в
// каталоге, создаем объект класса File
File f = new File(sDirPath + "\\" + dirlist[i]);
// Имена файлов отображаем строчными буквами
if(f.isFile())
System.out.println(dirlist[i].toLowerCase());
// Имена каталогов оставляем без изменения
else
System.out.println(dirlist[i]);
}
}
}
System.out.println("Press to terminate...");
System.in.read(bKbdInput);
}
catch(Exception ioe)
{
System.out.println(ioe.toString());
}
}
}
// =========================================================
// Класс MaskFilter
// Фильтр для просмотра каталога
// =========================================================
class MaskFilter implements FilenameFilter
{
// Поле для хранения маски имени
String sNameMask;
// -------------------------------------------------------
// Конструктор класса MaskFilter
// Сохраняет маску фильтра
// -------------------------------------------------------
MaskFilter(String sMask)
{
// Записываем маску прописными буквами
sNameMask = sMask.toUpperCase();
}
// -------------------------------------------------------
// Метод accept
// Проверка имени по маске
// -------------------------------------------------------
public boolean accept(File dir, String name)
{
// Если маска указана как символ *, подходит любое имя
if(sNameMask.equals("*"))
return true;
// Если имя содержит маску, возвращаем значение true
return (name.indexOf(sNameMask) != -1);
}
}
Описание исходного текста
В начале своей работы приложение вводит с клавиатуры путь к каталогу и
отрезает из полученной строки символ новой строки, пользуясь для этого классом
StringTokenizer:
System.out.println("Enter directory path...");
System.in.read(bKbdInput);
sDirPath = new String(bKbdInput, 0);
StringTokenizer st;
st = new StringTokenizer(sDirPath, "\r\n");
sDirPath = new String((String)st.nextElement());
Строка пути записывается в поле sDirPath.
Аналогичным образом вводится и обрабатывается маска, которая записывается в
поле sMask.
Далее создается объект класса File, соответствующий каталогу sDirPath,
содержимое которого нужно просмотреть:
File fdir = new File(sDirPath);
После этого выполняется проверка существования пути, а также проверка,
указывает ли этот путь на каталог. Для проверки мы применяем методы exists и
isDirectory, рассмотренные ранее.
Если все нормально, и был указан существующий каталог, приложение
анализирует поле маски sMask. В случае пустой маски для получения содержимого
каталога мы вызваем метод list без параметров:
if(sMask == null)
dirlist = fdir.list();
Если же маск
|
|