scusa ma potresti prima verificare se il file esiste, all'inizio della tua funzione, utilizzando la funzione exist... tipo così:

if not file.Exists(NamePathFile) then
'codice che crea la cartella
end if

e poi il tuo try...catch modificando il catch...
o non ho capito bene?