PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile (précédentes versions) → Casse nom fichier Android
Casse nom fichier Android
Débuté par Pucpood, 19 jan. 2021 12:14 - 1 réponse
Membre enregistré
328 messages
Posté le 19 janvier 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
Membre enregistré
328 messages
Posté le 20 janvier 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 !