IO: Получение списка файлов в директории

 
 
 
Сообщения:994
import java.io.File;

    public class Dir {
        public static void main(String args[]) {
            String list[] = new File(".").list();
            for(int i = 0; i < list.length; i++)
                System.out.println(list[i]);
        }
    }

Je pense, donc je suis
 
 
Сообщения:9474
Список файлов текущей директории так же можно получить так:
public class Main {
	public static void main(String args[])
	{
		for(String s: args)
			System.out.println(s);
	}
}
Запускать так:
Quote:
java Main *
 
 
Сообщения:6
Класс Lister выводит отсортированный список содержимого пути, переданного ему в качестве аргумента. Если аргумента нет, выводится сождержимое текущей директории.

import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Comparator;

class Lister {

    private File path;
    private File[] files;
    
    public Lister(String pathname) throws IOException {
        path = new File(pathname);
        if (!path.exists()) {
            throw new IOException("Cannot access " + pathname + ": No such file or directory");
        }
        if (path.isFile()) {
            files = new File[]{path};            
        } else {
            files = path.listFiles();
            Arrays.sort(files, new FilesComparator());
        }
    }    
    
    public void print() {
        for (File f: files) {
            System.out.println(
                f.getName() 
                + ((f.isDirectory()) ? File.separator : "")
            );
        }
    }

    public static void main(String[] args) {
        String path = (args.length == 0) ? "." : args[0];
        try {
            new Lister(path).print();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    private class FilesComparator implements Comparator<File> {
        public int compare(File f1, File f2) {
            if (f1.isDirectory() && f2.isFile()) {
                return -1;
            }
            if (f1.isFile() && f2.isDirectory()) {
                return 1;
            }
            return f1.compareTo(f2);
        }
    }
}

Пример запуска в Linux:
Quote:
java Lister /home
 
 
Сообщения:71
public class Dir {
    public static void main(String[] args)
    {
        try (DirectoryStream<Path> stream = Files.newDirectoryStream(Paths.get(args[0]))) {
            for (Path file: stream) {
                if(!file.toFile().isDirectory() ) {
                    System.out.println(file.getFileName());
                }
            }
        } catch (IOException | DirectoryIteratorException x) {
                System.err.println(x);
        }
    }
}
Изменен:14 мар 2015 21:42
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет