Qua trovi quello che ti serve per ottenere i file di una cartella, le dimensioni dei file, i nomi, ecc.
Il trasferimento dei file lo fai attraverso delle socket.
Il salvataggio lo fai sempre con la classe File e se ne occupera la parte di programma che riceve l'applicazione.