Innanzitutto il modo corretto e "pulito" per prendere il solo nome del file (senza il path) è con getName() di File. Non perdere tempo con lastIndexOf, substring o altre menate.
Oltretutto nel tuo codice c'è anche un'altra questione. Cerchi l'ultimo "/" e poi nel substring lo includi! Questo vuol dire che il nome del file inizia con "/" e quindi scrivere un file /qualcosa è nella "radice" del file system, dove presumibilmente non hai i permessi.