Se cerchi su codeproject.com trovi un ottimo esempio di server FTP in .net.
Dovrebbe essere in C#, ma penso che sia facile da capire. Dopotutto cambia solo la sintassi.