Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
ому пути
      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();
   Если же маск
 
<<-[Весь Текст]
Страница: из 275
 <<-