Java: l'Accès à un Fichier d'un Serveur FTP
J'ai donc ce serveur FTP avec un tas de dossiers et de fichiers à l'intérieur.
Mon programme doit pouvoir accéder à ce serveur, lisez tous les fichiers, et de les afficher leurs données.
À des fins de développement, j'ai travaillé avec les fichiers sur mon disque dur, à droite dans le "src" le dossier.
Mais maintenant que le serveur est opérationnel, j'ai besoin de connecter le logiciel à elle.
Fondamentalement, ce que je veux faire est d'obtenir une liste des Fichiers dans un dossier sur le serveur.
C'est ce que j'ai à ce jour:
URL url = null;
File folder = null;
try {
url = new URL ("ftp://username:[email protected]/server");
folder = new File (url.toURI());
} catch (Exception e) {
e.printStackTrace();
}
data = Arrays.asList(folder.listFiles(new FileFilter () {
public boolean accept(File file) {
return file.isDirectory();
}
}));
Mais je reçois l'erreur "schéma d'URI n'est pas 'le fichier'."
Je comprends que c'est parce que mon URL commence par "ftp://" et non pas "fichier:"
Cependant je n'arrive pas à comprendre ce que je suis censé faire!
Peut-être il ya une meilleure façon d'aller à ce sujet?
- Pourquoi pensez-vous que la
File
constructeur serait en mesure de gérer autre chose que d'unfile:
URL? - Et cette question a été posée de nombreuses fois; peut-être l'un des autres réponses vont vous aider: stackoverflow.com/...
- Voulez-vous être utiles, ou cynique? J'espérais. Le truc c'est que j'ai besoin d'une liste de fichiers. Je ne connais pas d'autre moyen d'aller à ce sujet.
- Vous ne savez pas si vous pouvez à l'aide d'une URL. Vous voudrez peut-être consulter un FTP dédié bibliothèque comme Apache Net de Communes ou edtFTP4j
- J'ai essayé d'utiliser edtFTPj/Gratuit mais une fois que je suis arrivé à
FTPFile [] files = ftp.directoryList();
il a gelé pendant une minute et dit: "Read timed out." Je suppose que je devrais probablement commencer un thread sur ce, à la place. - vous devez être prudent, car certains serveurs ftp ne permet pas des listes de répertoire. Il dépend de la plate-forme (IBM, Sun, Windows) et comment il est configuré. Car il n'y a pas de véritable moyen standard de sortie des listes de répertoire, les clients ftp dépendent des analyseurs, et même alors, ils font des suppositions éclairées quant à la plate-forme qui ils parlent. J'utilise Net de Communes (communes net?) pour la plupart, car il est très simple de se lever et courir, mais surtout à cause de leur FTPS soutien.
Vous devez vous connecter pour publier un commentaire.
File
objets ne peut pas gérer unFTP
de connexion, vous devez utiliser unURLConnection
:Considérer comme une alternative
FTPClient
de Apache Commons Net qui prend en charge de nombreux protocoles. Voici un FTP liste des fichiers d'exemple.client.connect("ftp.server.com");
mais j'obtiens une erreur lorsque je tente de cela, il dit que cette méthode n'est pas définie pour FTPClient.si vous utiliser l'URI avec fichier, vous pouvez utiliser votre code , mais, mais lorsque vous voulez utiliser le ftp si vous avez besoin de ce genre de code; code liste le nom des fichiers de votre serveur ftp
ÉDITÉ Le Code de démonstration Appartient à Codejava
drwx---rwx 2 trucker2 inetuser 4096 Jan 22 12:40 . drwx---r-x 10 trucker2 inetuser 4096 Jan 22 10:53 .. -rw----r-- 1 trucker2 inetuser 8 Jan 22 12:40 test.txt
Alors, comment puis-je l'utiliser pour lire les fichiers... ?