PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Recherche de fichiers sur un NAS
Recherche de fichiers sur un NAS
Débuté par Julien, 24 oct. 2016 18:15 - 10 réponses
Membre enregistré
70 messages
Popularité : +1 (1 vote)
Posté le 24 octobre 2016 - 18:15
Bonjour,

Je développe actuellement une application qui récupère le nom d'un fichier pdf enregistré par une application tierce (ici adobe Illustrator) dans un répertoire surveillé ("fSurveilleRépertoire") afin de retrouver le fichier natif (au format Illustrator et portant le même nom).
En utilisant "flistefichier" sur un disque local, la recherche est quasi instantanée. Par contre, sur un NAS (dans mon cas, un Synology) il faut environ 30 secondes.
J'aimerai savoir si il y a un moyen de réduire ce temps d'attente car j'ai essayer d'indexer dans une base HFSQL tous les fichiers du NAS par contre je ne peut détecter les créations et suppressions avec "fsurveillerépertoire" (partition en ext4).
Est-il possible d'utiliser la fonction de recherche Windows qui est plus rapide que "Flistefichier" pour la recherche d'un fichier réseau et de récupérer l'emplacement?

Merci pour vos retours !

--
Julien
Membre enregistré
204 messages
Popularité : +4 (8 votes)
Posté le 24 octobre 2016 - 19:45
Est-ce que l'explorateur windows a sensiblement le même délai de 30sec pour lister tous les fichiers dans le répertoire concerné?

Si oui, tu ne pourras pas faire grand chose.
Membre enregistré
70 messages
Popularité : +1 (1 vote)
Posté le 24 octobre 2016 - 20:18
Le délai de la recherche faite avec Windows est de 5 à 10 secondes en général donc beaucoup plus intéressant. L'accès sur le NAS en utilisant l'explorateur de Windows pour parcourir les fichiers est lui aussi extrêmement rapide.
J'ai activé l'indexation sur le NAS mais ça ne change pas grand chose sur mon projet WinDev.
c'est pourquoi si il y a possibilité d'utiliser la recherche de Windows, ça fera gagner du temps !

Merci

--
Julien
Membre enregistré
257 messages
Popularité : +35 (37 votes)
Posté le 24 octobre 2016 - 23:01
Je te conseil d'activer la fonction iSCSI LUN sur ton NAS pour que Windows le considère comme un disque dure interne
C'est extra !

https://www.synology.com/fr-fr/knowledgebase/DSM/tutorial/Virtualization/How_to_use_the_iSCSI_Target_service_on_Synology_NAS

--
Baptiste CLOART
Freelance
b.cloart@blv-tech.com
06.88.74.80.65
www.linkedin.com/in/cloart
www.blv-tech.com
Message modifié, 24 octobre 2016 - 23:02
Membre enregistré
70 messages
Popularité : +1 (1 vote)
Posté le 25 octobre 2016 - 09:22
Merci Baptiste pour cette suggestion.

Mon soucis c'est que sur mon réseau j'ai une quarantaine de poste avec des systèmes différents :
- Windows : de XP (obligation pour certaines machines) au Windows 10
- Linux : Ubuntu et Fedora pour certaines machines également
- Mac : du 10.4 au 10.11 suivant l'âge de l'ordinateur donc pour l'iSCSI je ne pense pas que cela soit possible.

--
Julien
Membre enregistré
204 messages
Popularité : +4 (8 votes)
Posté le 25 octobre 2016 - 14:06
As-tu essayé de mapper le NAS à l'aide de "Connecter un lecteur réseau" ? et de faire les recherches sur ce drive la?

Tu pourrais soit le mapper à tous le monde 1 fois, ou voir si c'est possible de le faire par programmation selon l'OS de l'usager.

À mon avis, le délai d'accès entre la recherche window et celle fourni par windev est le même, simplement qu'avec windev, il se connecte/reconnecte plusieurs fois ce qui augmente le délai.

Connecter le lecteur réseau pourrait éviter ce genre de connexion/déconnexion.

en windev c'est RéseauConnecte

https://doc.pcsoft.fr/fr-FR/?3066002
Membre enregistré
70 messages
Popularité : +1 (1 vote)
Posté le 25 octobre 2016 - 15:05
J'avais essayé de mapper un partage mais ça ne changeait pas grand chose
Je pense que c'est au niveau de mon code qu'il y a problème
je fait "flisteFichier" pour répertorier les fichiers puis après je recherche avec "pour tout chaine de..."
sListe,sFichier sont des chaînes

sListe=fListeFichier(gsEmplacementSurveillé+["\"]+"*.*",frRécursif+frSansFichierCaché+frSansRépertoireCaché)

POUR TOUT CHAINE sFichier DE sListe SEPAREE PAR RC
SI sfichier=toto ALORS SORTIR....

Je viens de me rendre compte que je peux exécuter une procédure avec "flistefichier"...
ça pourrait accélérer la recherche.....
je me demande si "flistefichier" ne se sert pas aussi de l'indexation des fichiers c'est pourquoi sur mon disque contenant 23000 fichiers, c'est instantané alors que sur un disque distant d'environ 50000 fichiers, ça prends du temps...

Merci à toi pour ton suivi !

--
Julien
Posté le 25 octobre 2016 - 15:19
Bonjour

1. c'est plus lent avec la l'exécution de procédure qu'en récupérant
tous les fichiers dans une chaine et en traitant ensuite

2. Tu ne veux que les pdf, donc remplace ton "*.*" par "*.pdf"

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Le 10/25/2016 à 7:05 AM, Julien a écrit :
J'avais essayé de mapper un partage mais ça ne changeait pas grand chose
Je pense que c'est au niveau de mon code qu'il y a problème
je fait "flisteFichier" pour répertorier les fichiers puis après je
recherche avec "pour tout chaine de..."
sListe,sFichier sont des chaînes

sListe=fListeFichier(gsEmplacementSurveillé+["\"]+"*.*",frRécursif+frSansFichierCaché+frSansRépertoireCaché)


POUR TOUT CHAÎNE sFichier DE sListe SEPAREE PAR RC
si sfichier=toto alors sortir....

Je viens de me rendre compte que je peux exécuter une procédure avec
"flistefichier"...
ça pourrait accélérer la recherche.....
je me demande si "flistefichier" ne se sert pas aussi de l'indexation
des fichiers c'est pourquoi sur mon disque contenant 23000 fichiers,
c'est instantané alors que sur un disque distant d'environ 50000
fichiers, ça prends du temps...

Merci à toi pour ton suivi !

--
Julien
Membre enregistré
70 messages
Popularité : +1 (1 vote)
Posté le 25 octobre 2016 - 17:01
Je recherche le fichier natif qui porte le même nom mais n'est pas forcément un PDF.
ça peut être une image (jpeg, Tiff ou Photoshop) ou bien un Indesign, ou un Illustrator.
ces fichiers sont envoyés sur un RIP d'impression avec un moteur APPE (fichier pdf exclusivement)

Je vais utilisé un moyen détourné , en synchronisant mon serveur (50000 fichiers images ou vectoriel, environ 400Go) avec un pc de façon à pouvoir utiliser la surveillance de répertoire pour créer une base de données.
C'est assez lourd mais ça pourra permettre aux utilisateur de rechercher dans une BDD plutôt que sur un disque

Merci pour votre aide !

--
Julien
Posté le 25 octobre 2016 - 17:19
Bonjour Julien

dans ce cas, puisque tu as le nom du pdf, cherches sur
NomDuPDFSansL'extension+".*"

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Le 10/25/2016 à 9:01 AM, Julien a écrit :
Je recherche le fichier natif qui porte le même nom mais n'est pas
forcément un PDF.
ça peut être une image (jpeg, Tiff ou Photoshop) ou bien un Indesign, ou
un Illustrator.
ces fichiers sont envoyés sur un RIP d'impression avec un moteur APPE
(fichier pdf exclusivement)

Je vais utilisé un moyen détourné , en synchronisant mon serveur (50000
fichiers images ou vectoriel, environ 400Go) avec un pc de façon à
pouvoir utiliser la surveillance de répertoire pour créer une base de
données.
C'est assez lourd mais ça pourra permettre aux utilisateur de rechercher
dans une BDD plutôt que sur un disque

Merci pour votre aide !

--
Julien
Membre enregistré
70 messages
Popularité : +1 (1 vote)
Posté le 26 octobre 2016 - 08:33
Merci Fabrice !

Je gagne du temps en effet à déclarer directement dans "flistefichier" le nom du fichier que je recherche

--
Julien