Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    IOException: La struttura necessita di una pulizia

    ciao!

    sto usando questo metodo, ma sto riscontrando un errore che non hai mai visto:
    codice:
    java.nio.file.FileSystemException: /home/matte/android-sdk-linux/extras/google/m2repository/com/google/android/gms/play-services-games/7.8.0/play-services-games-7.8.0.aar: La struttura necessita di una pulizia
        at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
        at sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
        at sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:144)
        at sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99)
        at java.nio.file.Files.readAttributes(Files.java:1737)
        at java.nio.file.FileTreeWalker.getAttributes(FileTreeWalker.java:225)
        at java.nio.file.FileTreeWalker.visit(FileTreeWalker.java:276)
        at java.nio.file.FileTreeWalker.next(FileTreeWalker.java:372)
        at java.nio.file.Files.walkFileTree(Files.java:2706)
        at com.mp.listdir.Utils.scanDir(Utils.java:114)
        at com.mp.listdir.TreeWindow$CustomActionListener.actionPerformed(TreeWindow.java:125)
    ..........................................................................................
    il metodo è questo:
    codice:
        public ArrayList<Record> scanDir(Path directory) throws IOException {
            ArrayList<Record> list = new ArrayList<>();
            Files.walkFileTree(directory, EnumSet.of(FileVisitOption.FOLLOW_LINKS), 2000, new SimpleFileVisitor<Path>() {
                @Override
                public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                    File f = file.toFile();
                    if (f.isFile()) {
                        Record record = new Record(f.getName(), new Tika().detect(f), f.getAbsolutePath());
                        list.add(record);
                    }
                    return FileVisitResult.CONTINUE;
                }
            });
            return list;
        }
    avete un'idea di cosa voglia dire??

  2. #2
    ho "risolto" (se così si può dire) modificando il metodo scanDir:
    codice:
    public ArrayList<Record> scanDir(Path directory) throws IOException {
            ArrayList<Record> list = new ArrayList<>();
            Files.walkFileTree(directory, new FileVisitor<Path>() {
                @Override
                public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                    File f = file.toFile();
                    String ext = FilenameUtils.getExtension(f.getName());
                    if (f.isFile() && !ext.equals("aar")) {
                        Record record = new Record(f.getName(), new Tika().detect(f), f.getAbsolutePath());
                        list.add(record);
                    }
                    return FileVisitResult.CONTINUE;
                }
    
                @Override
                public FileVisitResult preVisitDirectory(Path t, BasicFileAttributes bfa) throws IOException {
                    return FileVisitResult.CONTINUE;
                }
    
                @Override
                public FileVisitResult visitFileFailed(Path t, IOException ioe) throws IOException {
                    System.out.println(t.getFileName());
                    return FileVisitResult.CONTINUE;
                }
    
                @Override
                public FileVisitResult postVisitDirectory(Path t, IOException ioe) throws IOException {
                    return FileVisitResult.CONTINUE;
                }
            });
            return list;
        }
    usando FileVisitor, e non SimpleFileVisitor, si ha a disposizione il metodo visitFileFailed.
    così facendo, il processo continua e riempie cmq la lista.
    poi cercherò di capire il perchè di questo errore.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.