Ho bisogno di iterare una cartella sul computer locale dal server per analizzare alcuni file. È vero? Se è vero, per favore, mi consiglia come farlo.Come accedere a un filesystem in java?
risposta
Si può anche avere uno sguardo alla new package nio.2 in Java 7, con tutorial here.
Molte cose nuove e potenti.
Se è possibile connettersi tramite SSH, FTP o FTPS, ciò può essere fatto abbastanza facilmente. Se si sta parlando di HTTP, il server deve essere impostato per mostrare directories = true e si dovrà analizzare la risposta http per la directory per ottenere i nomi dei file.
Provare a implementare un client server application in cui la parte server è installata sul PC client e si priva la parte clietn (che verrà eseguita sul PC Server) con le informazioni necessarie. In alternativa è possibile utilizzare il server FTP sul computer client e accedervi dal server quando necessario.
Preferisco Commons VFS. Può gestire filesystem locali, SFTP e molti altri. Tutto con lo stesso codice: basta cambiare percorso ai file.
FileSystemManager fsManager = VFS.getManager();
FileObject directory = fsManager.resolveFile("path/to/dir");
FileObject[] files = directory.findFiles(fileSelector);
for (FileObject file : files) {
// do something
}
ricevo errore quando prova a farlo da un server remoto (OS: Solaris): "org.apache.commons.vfs2.FileSystemException: Badly formato URI "C:./My/Files" \t a org.apache. commons.vfs2.provider.url.UrlFileProvider.findFile (UrlFileProvider.java:91)". Il sistema operativo della macchina locale è Windows. – DmitryB
@DmitryB Potresti mostrarmi il tuo codice? Questo può accadere quando chiudi FileSystemManager ... – user219882
@DmitryB Giusto per chiarire. Stai cercando di accedere da remoto a un filesystem (accedi a Solaris da Windows)? Se lo fai, allora penso che non puoi usare solo il percorso 'C: \ ...' ma devi usare il protocollo 'SFTP' o' HTTP'. – user219882