Ciao a tutti, come da titolo sto cercando un modo semplice per trovare un eventuale carattere "illegale" (non accettato dal sistema operativo) in un path specificato dall'utente che desidera salvare un file.
Cercando in rete per ora sono arrivato a questa soluzione:
codice:
public boolean saveFile(String path,String content)
{try
{
Paths.get(path);
PrintWriter p=new PrintWriter(new FileWriter(path));
p.print(content);
p.flush();
p.close();
return true;
}
catch(java.nio.file.InvalidPathException ipe)
{
char invalid=path.charAt(ipe.getIndex());
if(invalid=='<'||invalid=='>')System.out.print("\nIl carattere \""+invalid+"\" non puo' essere usato nel nome del file !");
else System.out.print("\nIl carattere <"+invalid+"> non puo' essere usato nel nome del file !");
}
catch(IOException ioe){
ioe.printStackTrace();
}
return false;
}
Le domande che mi pongo sono due:
- E' un sistema affidabile indipendentemente dal sistema operativo o si può fare di meglio?
- Assumendo di non voler mandare un messaggio d'errore all'utente richiedendo un nuovo path, ma di volere invece correggere "automaticamente" il nome del file, avrebbe senso inserire un ciclo in cui si controlla la correttezza del nome (quindi solo la prima riga del blocco try) e nel caso siano presenti caratteri illegali sostituirli man mano nel blocco catch con un carattere permesso?
Grazie dell'attenzione