Индексирование имен файлов в базу данных - PullRequest
3 голосов
/ 20 мая 2010

У меня есть папка с более чем 2000 файлами, и мне нужно проиндексировать их имена в базе данных (MySQL) с помощью Java, но как я могу это сделать?

PS: Часть соединения MySQL, которую я уже знаю.

Ответы [ 3 ]

2 голосов
/ 20 мая 2010

Вы можете рекурсивно перечислить все файлы в каталоге следующим образом:

import java.io.*;

public class ListDir {

    public static void main(String args[]) {
        File root;
        if (args.length > 0) root = new File(args[0]);
        else root = new File(System.getProperty("user.dir"));
        ls(root); 
    }

    private static void ls(File f) { 
        File[] list = f.listFiles();
        for (File file : list) {
            if (file.isDirectory()) ls(file);
            else System.out.println(file);
        }
    }
}

См. Также Использование подготовленных заявлений . Может быть, что-то вроде этого:

PreparedStatement ps = conn.prepareStatement("INSERT INTO Files VALUES(?)");
File userDir = new File(System.getProperty("user.dir"));
File[] files = userDir.listFiles();
for (File f : files) {
    if (f.isFile()) {
        ps.setString(1, f.getAbsolutePath());
        ps.executeUpdate();
    }
}
1 голос
/ 20 мая 2010

Проверка File.listFiles

public File[] listFiles()

Возвращает массив абстрактных путей, обозначающих файлы в каталоге, обозначенном этим абстрактным путем.

Если это абстрактное имя пути не обозначает каталог, тогда этот метод возвращает ноль. В противном случае возвращается массив объектов File, по одному для каждого файла или каталога в каталоге. Имена путей, обозначающие сам каталог и родительский каталог каталога, не включаются в результат. Каждый результирующий абстрактный путь создается из этого абстрактного пути с использованием конструктора File (File, String). Следовательно, если этот путь является абсолютным, то каждый полученный путь является абсолютным; если этот путь относительный, то каждый полученный путь будет относиться к одному и тому же каталогу.

1 голос
/ 20 мая 2010

Я не уверен, в чем именно проблема. Если он читает имена файлов из каталога, посмотрите на File.listFiles().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...