PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV Mobile (versiones precedentes) → Casse nom fichier Android
Casse nom fichier Android
Iniciado por Pucpood, 19,ene. 2021 12:14 - 1 respuesta
Miembro registrado
322 mensajes
Publicado el 19,enero 2021 - 12:14
Bonjour,

Sous Androïd, FTPEnvoie est sensible à la casse des noms de fichier (source), or les fichiers de nos clients peuvent avoir des disparités dans la casse.
Je voulais renommer systématiquement tous les fichiers en minuscules (fic et ndx) en utilisant fFichierExiste et fRenomme.

Malheureusement :
1/ fFichierExiste (sous Android) est insensible à la casse (contrairement à ce que dit la doc) et renvoie toujours vrai quelque soit la casse.
2/ fRenomme avec une chaîne de destination en minuscule est sans effet, la casse du nom de fichier reste inchangée.

Je ne sais plus comment faire ...

Merci.

Laurent
Miembro registrado
322 mensajes
Publicado el 20,enero 2021 - 11:18
Voici ma solution, qui est un peu lourde, mais qui fonctionne :

fRenomme "voit" toujours les fichiers en minuscules (même s'il est "physiquement" en majuscules). Il refuse alors de renommer avec des minuscules considérant que "un fichier du même nom est déjà existant". J'en conclue que fRenomme fait d'abord une copie, suivie d'une suppression !

J'en suis donc réduit à faire mon renommage en 2 temps : fRenomme vers un nom bidon ou un autre dossier, puis un autre fRenomme vers le dossier d'origine avec le nom voulu en minuscules.
Et ceci pour les .fic d'abord ET les .ndx ensuite (sous peine de devoir réindexer), car en effet, HChangeNom qui devrait être utilisée dans ce cas est sans effet !

sNomPhysiqueFichier est une chaîne = Minuscule(psNomPhysiqueFichier)

// c'est lourd, mais c'est la seule méthode fiable pour obtenir un nom de fichier avec la casse voulue
fRenomme(ComplèteRep(psRepertoire)+psNomPhysiqueFichier+".fic",ComplèteRep(psRepertoire)+"fichier.tmp")
fRenomme(ComplèteRep(psRepertoire)+"fichier.tmp",ComplèteRep(psRepertoire)+sNomPhysiqueFichier+".fic")
fRenomme(ComplèteRep(psRepertoire)+psNomPhysiqueFichier+".ndx",ComplèteRep(psRepertoire)+"index.tmp")
fRenomme(ComplèteRep(psRepertoire)+"index.tmp",ComplèteRep(psRepertoire)+sNomPhysiqueFichier+".ndx")


N'hésitez pas à me faire signe si je fais fausse route !