IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Noms de fichiers avec des caractères spéciaux


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Octobre 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2009
    Messages : 167
    Points : 118
    Points
    118
    Par défaut Noms de fichiers avec des caractères spéciaux
    Je développe un freeware de backup. Dedans, j'utilise des fonctions de copie, qui elles-mêmes utilisent des noms de fichiers lus avec la fonction Dir.

    Or j'ai de temps en temps des noms de fichiers bizarres, tels que :

    çais.pdf

    Dans ce nom de fichier, en fait le ç est décomposé en 3 caractères : un c, une sorte d'espace et une sorte de ,.

    Si Dir me renvoie correctement ce nom, il est impossible de l'utiliser après, que ce soit avec les fonctions VB ou les api.

    Une idée ?

    Christian

  2. #2
    Membre actif Avatar de petit rabot
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2010
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2010
    Messages : 236
    Points : 226
    Points
    226
    Par défaut
    Peux tu mettre ton code
    "Ce n'est pas parce que les choses sont impossibles qu'il faut les accepter."

  3. #3
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Octobre 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2009
    Messages : 167
    Points : 118
    Points
    118
    Par défaut
    Merci de ta réponse. Voila une procédure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Public Sub test()
     
    Dim lpFindFileData As WIN32_FIND_DATA
    Dim hFindFile As Long
    Dim fileName As String
    Dim CurPath$, TargetPath$, SourcePath$, i&
     
     
    CurPath = "\\?\c:\temp\source\*.*"
     
    SourcePath = "\\?\c:\temp\source\"
    TargetPath = "\\?\c:\temp\target\"
     
    hFindFile = FindFirstFile(CurPath, lpFindFileData)
    If hFindFile <> INVALID_HANDLE_VALUE Then
    Do
    fileName = Mid$(lpFindFileData.cFileName, 1, InStr(lpFindFileData.cFileName, Chr$(0)) - 1)
     
    If fileName <> "." And fileName <> ".." Then
     
    MsgBox CopyFileW(StrConv(SourcePath & fileName, vbUnicode), StrConv(TargetPath & fileName, vbUnicode), 0) & vbCrLf & fileName
     
    End If
     
    Loop Until FindNextFile(hFindFile, lpFindFileData) = 0
     
    End If
     
    FindClose hFindFile
     
    End Sub
    Lorsque j'ai un fichier "banal", cela fonctionne parfaitement. Lorsque j'ai un fichier dont le nom est spécial, cela ne marche plus.

    Par exemple :
    Проверка организаций правоохранительными и иными контролирующими органами.msg

  4. #4
    Membre éprouvé Avatar de DAUDET78
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2008
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 634
    Points : 1 161
    Points
    1 161
    Par défaut
    Je suis sur un projet voisin du tiens et je me suis inspiré de
    http://www.xllentsoft.com/downloads.html
    rubrique "List all files in the specified location"

    Il y a un ZIP avec les sources et un EXE

    il n'y a pas de problème avec les caractères accentués à , é ,ù etc

    je n'ai pas testé avec des cyrilliques !

  5. #5
    Membre régulier
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Octobre 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2009
    Messages : 167
    Points : 118
    Points
    118
    Par défaut
    Merci. Je regarde cela de suite.

    Christian

Discussions similaires

  1. [Batch] Récupérer le nom de fichier avec des caractères inconnus
    Par Christophe.G dans le forum Scripts/Batch
    Réponses: 11
    Dernier message: 26/12/2014, 16h24
  2. Lecture d'un fichier avec des caractères spéciaux
    Par pyrrhus33 dans le forum C++
    Réponses: 4
    Dernier message: 27/10/2014, 14h10
  3. Trouver des noms de fichiers avec des caractères non ASCII
    Par llaffont dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 16/10/2012, 14h06
  4. lecture d'un fichier avec des caractères spéciaux
    Par Invité dans le forum SAS Base
    Réponses: 24
    Dernier message: 20/01/2011, 09h50
  5. Copie d'un fichier avec des caractères spéciaux
    Par totofe dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 15/09/2010, 12h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo