Le remplacement illégal de caractère dans le nom de fichier

En Java, j'ai un Nom de Fichier-Chaîne. Là j'ai envie de remplacer tous les Caractères illégaux avec des '_', mais pas a-z, 0-9, -,. et _

J'ai essayé le code suivant: Mais cela n'a pas fonctionné!

myString = myString.replaceAll("[\\W][^\\.][^-][^_]", "_");
  • Étant donné que le titre est plus général que le libellé de la question, ma solution à ce problème serait d'utiliser filename = URLEncoder(fileName, "UTF-8") pour les noms de fichiers. Le résultat de cette opération est toujours un nom de fichier valide. Cela permet également d'obtenir le nom de fichier d'origine caractères à l'aide de URLDecoder sur le nom de fichier
  • Il n'est pas garanti que le nom du fichier résultant est toujours valide. * n'est pas un caractère valide.
  • filename = URLEncoder(nom de fichier.replaceAll("\\*","%2A"), "UTF-8");
InformationsquelleAutor bbholzbb | 2013-02-25