Vraag : Beveilig FTP in Java

Hallo heeft Expert

I een methode die dossiers aan een plaats van FTP uploadt. Maar ik ben worstelend een beetje doe één of andere things.

Well die ik heb willen om maximum 5 dossiers meteen uploaden (*.xml) en een bericht ontvangen dat opnieuw de zelfde dossiers met verschillend Ext. (*.eof)

E.g.
12.xml
34.xml
56.xml
78.xml
910.xml

After uploadt dit de zelfde dossiersnaam met een verschillende ext
12.eof
34.eof
56.eof
78.eof
910.eof

Then toen aan een andere folder
1 neemt:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
pakket fileuploads;

de invoer com.jcraft.jsch.*;
de invoer java.io.*;
de invoer java.util.*;

openbare klasse TestJSch {

	openbare TestJSch () {

	}

	openbare statische nietige leiding (Koord [] args) {

		probeer {
			Koord ftpHost = „ipaddress“;
			int. ftpPort = haven;
			Koord ftpUserName = „gebruikersbenaming“;
			Koord ftpPassword = „wachtwoord“;
			ftpRemoteDirectory koord = „//dropzone/inbound/moneymarket/mmconfirmations/dev“;
			Koord fileToTransmit = „C: /tmp/*.txt“;

			// leidt eerst tot een zitting JSch

			System.out.println („Creërend zitting. “);
			JSch jsch = nieuwe JSch ();
			De zitting van de zitting = verklaart nietig;
			Het kanaal van het kanaal = verklaart nietig;
			ChannelSftp c = verklaart nietig;

			// verbindt nu en SFTP met de Server SFTP
			//
			probeer {
				// leidt tot een zitting verzendend door ons gebruikersbenaming en wachtwoord
				zitting = jsch.getSession (ftpUserName, ftpHost, ftpPort);
				System.out.println („gecre�ërde Zitting. “);
				session.setPassword (ftpPassword);

				// Opstelling Strikte HostKeyChecking aan geen worden wij zo niet onbekend
				// gastheer zeer belangrijke uitzondering
				java.util. Eigenschappen config = nieuwe java.util. Eigenschappen ();
				config.put („StrictHostKeyChecking“, „geen“);
				session.setConfig (config);
				session.connect ();
				System.out.println („verbonden Zitting. “);

				// opent het kanaal SFTP
				//
				System.out.println („OpeningsKanaal. “);
				kanaal = session.openChannel („sftp“);
				channel.connect ();
				c = (ChannelSftp) kanaal;
			} vangst (Uitzondering e) {
				System.err.println („Onbekwaam om met de server van FTP te verbinden.“
						+ e.toString ());
				werp e;
			}

			// Verandering in de verre folder
			//
			System.out.println („Veranderend in verre dir van FTP: “
					+ ftpRemoteDirectory);
			(ftpRemoteDirectory) c.cd;

			// verzendt het dossier dat wij hebben geproduceerd
			probeer {
				Dien F = nieuw Dossier in (fileToTransmit);
				System.out.println („Opslaand dossier als verre filename: “ + f.getName ());
				c.put (nieuwe FileInputStream (F), f.getName ());
			} vangst (Uitzondering e) {
				System.err.println („Opslaand ver ontbroken dossier.“ + e.toString ());
				werp e;
			}

			// krijgt de lijst van dossiers in de verre serverfolder

			Vector dossiers = (ftpRemoteDirectory) c.ls;
			// Logboek als wij niets aan download hebben
			als (files.size () == 0) {
				System.out.println („Geen dossiers zijn beschikbaar voor download. “);
			}


		}
			vangst (Uitzondering e) {
				System.err.println („Fout: “ + e.toString ());
		}

		System.out.println („Volledig Proces. “);
		System.exit (0);

	}
} 

Antwoord : Beveilig FTP in Java

Vervang de listFiles () methode met de hieronder implementatie. U hebt opnieuw de uitbreiding in de verkeerde ensWith () methode gegeven; het kan geen *.xml zijn het de uitbreiding zou moeten zijn die u tot de methode overgaat.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
openbaar statisch Dossier [] listFiles (de folder van het Koord, de definitieve uitbreiding van het Koord) {
	    	
	    	Dossier dir = nieuw Dossier (folder);
	    	
	    	FileFilter fileFilter = nieuwe FileFilter () { 
	    		openbare van Boole keurt goed (het dossier van het Dossier) { 
	    			terugkeer file.getName () .endsWith (uitbreiding); 
	    		} 
	    	};
	    	terugkeer dir.listFiles (fileFilter); 
	    }
Andere oplossingen  
 
programming4us programming4us