Wenn Du fit in der Sprache und der Softwareentwicklung bist und nur wissen möchtest, wie FTP funktioniert, dann sollte die offizielle RfC 959, die das FTP beschreibt, reichen (
RFC959).
Wenn Du Programmieranfänger und nicht firm in Sprache sowie Entwicklungsmethoden bist, dann kann ich Dir nur raten, Dir ein etwas leichteres Projekt zu suchen. Um einen guten FTP Client zu implementieren, müsste man schon etwas tiefer in der Materie stecken und anhand Deiner Anforderungen (die sich nur auf Funktionen einer GUI aber nicht die FTP Implementation beziehen) denke ich, ist das noch etwas gross.
[EDIT: urga war schneller mit dem RfC .. ]