Если я сделал правильно понял вы хотите найти расширения файлов, вот пример приложения я сделал для вас с помощью поворотного рабочего, теперь вы можете сканировать весь компьютер с определенными расширениями файлов, которые определены в программе в настоящее время она находит html, txt и pdf вы можете это изменить.
Here is the entire project package
Создать Scan рабочий класс, как это ниже, и исправить импорт с помощью IDE
public class ScanWorker extends SwingWorker<Void, String> {
ResultFrame helperv;
int finalTotal = 0;
String str3;
public String status;
public ScanWorker(ResultFrame x) {
finalTotal = 0;
helperv = x;
helperv.jTarea.setText("");
}
@Override
protected Void doInBackground() throws Exception {
helperv.jTarea.replaceSelection("Scanning..." + "\n");
Thread.sleep(100);
callMainScan();
return null;
}
@Override
protected void process(List<String> chunks) {
for (String str : chunks) {
helperv.jTarea.append(str);
helperv.scanlabel.setText(str);
}
}
@Override
protected void done() {
helperv.scanlabel.setText("Total Number of Files Matched: " + Integer.toString(finalTotal));
}
private void callMainScan() throws IOException {
String[] myStringArray = new String[3];
myStringArray[0] = "*.txt";
myStringArray[1] = "*.html";
myStringArray[2] = "*.pdf";
File[] paths;
paths = File.listRoots();
try {
for (File path : paths) {
String str = path.toString();
String slash = "\\";
String s = new StringBuilder(str).append(slash).toString();
Path startingDir = Paths.get(s);
for (String stre : myStringArray) {
String pattern = stre;
Finder finder = new Finder(pattern);
Files.walkFileTree(startingDir, finder);
finder.done();
}
}
} catch (IOException e) {
System.out.println("Exception occured");
}
}
public class Finder
extends SimpleFileVisitor<Path> {
private final PathMatcher matcher;
private int numMatches = 0;
Finder(String pattern) {
matcher = FileSystems.getDefault()
.getPathMatcher("glob:" + pattern);
}
// Compares the glob pattern against
// the file or directory name.
void find(Path file) {
Path name = file.getFileName();
if (name != null && matcher.matches(name)) {
numMatches++;
System.out.println(file);
str3 = file.toString();
publish(str3 + "\n");
}
}
// Prints the total number of
// matches to standard out.
void done() {
// System.out.println("Matched: "
// + numMatches);
finalTotal = finalTotal + numMatches;
}
// Invoke the pattern matching
// method on each file.
@Override
public FileVisitResult visitFile(Path file,
BasicFileAttributes attrs) {
find(file);
return CONTINUE;
}
// Invoke the pattern matching
// method on each directory.
@Override
public FileVisitResult preVisitDirectory(Path dir,
BasicFileAttributes attrs) {
find(dir);
return CONTINUE;
}
@Override
public FileVisitResult visitFileFailed(Path file,
IOException exc) {
// System.err.println(exc);
return CONTINUE;
}
}
}
сканирования Кнопка Действие
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
new Thread(new Runnable() {
@Override
public void run() {
sw = new ScanWorker(ResultFrame.this);
sw.execute();
}
}).start();
}
Возможно, вы реализуете функцию isText (файл) и показываете нам, что происходит? –
нет такого метода isText доступен –
, тогда напишите! ОК? –