PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Création d'un répartoire
Création d'un répartoire
Débuté par Jerome Perriollat, 23 aoû. 2020 14:46 - 3 réponses
Membre enregistré
62 messages
Posté le 23 août 2020 - 14:46
Bonjour
Je cherche à l’initialisation de mon application à vérifier l'existence ou non d'un répertoire.
S'il n'existe pas alors je le crée
Voici mon code

MonRépertoire est une chaîne = fRepExe() + fSep + "Stock"
SI fRépertoireExiste(MonRépertoire) = Faux ALORS
fRepCrée(MonRépertoire)
FIN

sListeFichier est une chaîne
NbFic est un entier
sListeFichier = fListeFichier(MonRépertoire + fSep + "*.*", frNonRécursif)
NbFic = ChaîneOccurrence(sListeFichier,RC)
SI NbFic > 0 ALORS
BTN_Plus.Visible=Vrai
SINON
BTN_Plus.Visible=Faux
FIN


L'application ne crée pas ce dossier "Stock"
Je crains que se soit parce que j'écris sur le root en visant le répertoire EXE.

Je n'ai pas forcément de carte SD non plus.
Donc comment puis-je faire cela

Un immense merci
Membre enregistré
3 311 messages
Popularité : +93 (137 votes)
Posté le 24 août 2020 - 08:24
Dans ton code rien n'est fait pour vérifier que la création n'est pas faite.
Tu vérifies bien l'existence du dossier mais pas sa création.
Ensuite tu liste des fichiers mais cette liste est exécuté même si ton dossier n'existe pas.
De plus normalement, l'application a tous les droits sur le dossier exe donc je dirais qu'il n'y a aucune raison pour que le dossier ne soit pas créer.
Rajoute des toastaffiche et info et réorganise ton code.
Rajoute aussi une gestion d'erreur.
As tu un message d'erreur te disant que le dossier n'est pas créer ?
Membre enregistré
964 messages
Popularité : +16 (20 votes)
Posté le 24 août 2020 - 08:39
Bonjour
J'ai passé un mois sur le sujet à cause de plantage sur les téléphones CrossCall Treker M1.
En fait, à force de tests, j'ai acquis la certitude suivante : il faut un "certain temps" pour que le dossier soit créé sur ce téléphone. Pas d'erreur, mais le flux d'instruction continue et .... plante parce que le dossier n'est pas là !
Pour s'en convaincre, j'ai ajouté des "info("création dossier 1") après chaque création de dossier (j'en créais 4), Le temps de répondre, le dossier était créé. J'ai ouvert un incident chez PCSOFT, pris 6 h d'assistance personnalisé (1000€) pour qu'au final "cela ne vient pas de WM !).

Solution utilisée :
Procedure gPROC_CREER_DOSSIER(sParmNomDossier,sParmFolderName)

i est un entier=0

SI fRépertoireExiste(sParmFolderName) = Vrai ALORS

SINON

fRepCrée(sParmFolderName)

SI ErreurDétectée ALORS
Info(ErreurInfo(errComplet))
FIN

ChronoDébut()

TANTQUE 1=1

SI ChronoValeur()>2000 ALORS
i=1
SORTIR
FIN
SI fRépertoireExiste(sParmFolderName) = Vrai ALORS
i=0
SORTIR
FIN
FIN

IF i>0 ALORS
Info("impossible de créer le dossier "+sParmFolderName)
FIN
FIN


Attention ; au delà du problème évoqué, ce posera le problème de Android 10 api 29 évoqué par Guillaume BAYLE dans https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windevmobile/40087-pcsoft-aout-2020-google-demande-relever-niveau-api/read.awp et exposé dans le blog https://blogs.pcsoft.fr/fr/aout-2020-google-demande-relever-niveau-api-cible-applications-android-afin-deployer-google-play/281474976710907/read.awp

Donc, un conseil ; crée un dossier (tu vas y arriver) mais au bon endroit.
Membre enregistré
62 messages
Posté le 24 août 2020 - 13:26
Merci a vous.

J ai comme tu me le suggeres mis des infos au moments cles.

Du coup ca fonctionne maintenant.

Mais est ce que cetait parce que le temps de cliquer sur info, le dossier s est cree ...
Je teste ca sur un autre téléphone demain

Encore merci.