Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    142

    [JAVA] Caratteri vietati per nome file

    Ciao a tutti,
    vorrei sapere se è possibile evitare la scrittura di alcuni caratteri vietati per l'immissione da parte dell'utente di un nome file.

    Ora ho risolto in questo modo, ma preferirei evitare proprio che alcuni caratteri vengano immessi ( lo faccio per la compilazione di alcuni campi nel programma con opportuni renderer... ma qui non saprei come fare)

    codice:
    JFrame frame = new JFrame(""); 
    String answer = JOptionPane.showInputDialog(frame,  "Inserisci");
    String regex = "[a-zA-Z_0-9]*";
    if (Pattern.matches(regex, answer)){
               JOptionPane.showMessageDialog(null, answer + " is valid");
    }
     else {
          JOptionPane.showMessageDialog(null, "ERROR: " +answer + " is not valid");
                return;
    }

    Altro problema simile con un jFileChooser.showSaveDialog:

    codice:
    File file0 = new File(curDir)
    jFileChooser3.setCurrentDirectory(file0);
    jFileChooser3.setSelectedFile(new File(""));    
    int retval2 = jFileChooser3.showSaveDialog(this);
     if (retval2 == jFileChooser3.APPROVE_OPTION) {
            File file = jFileChooser3.getSelectedFile();
            String NomeFile = file.getAbsolutePath();
            String NomeFileSalvato = file.getName();
            Boolean nomeFileNonValido = false;
            String regex = "[a-zA-Z_0-9]*";
            if (Pattern.matches(regex, NomeFileSalvato)){
                nomeFileNonValido = false; 
            }
            else {
                JOptionPane.showMessageDialog(null, "ERROR: " + NomeFileSalvato + " is not valid");
                nomeFileNonValido = true; 
            }
    qui il controllo non riesco a farlo sulla stringa immessa... ma sul percorso del file. Se scrivo un nome che comprende un punto interrogativo mi inserisce quel nome come estensione scelta

    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Io opterei per un controllo di questo tipo:
    codice:
    private boolean testNomeFile(String nomeDaTestare) {
       boolean ret = false;
       try {
          File f = new File( nomeDaVerificare );
          String test = f.getCanonicalPath();
          ret = (test != null);
       } catch (Exception e) {
          ret = false;
       }
       return ret;
    }
    Puoi utilizzare questo metodo in questo modo:
    codice:
    // Qui ottieni il nome dall'utente (come vuoi, TextField, FileChooser...)
    String nomeFile = ...;
    
    if ( testNomeFile( nomeFile ) ) {
       // Il nome è accettato!
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    142
    Grazie Lele.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.