Comment vérifier efficacement l'existence d'un grand volume de fichiers à l'aide de la bibliothèque JCIFS?

StackOverflow https://stackoverflow.com/questions/5413128

  •  29-10-2019
  •  | 
  •  

Question

J'ai un processus qui lit la base de données pour rassembler les informations sur le serveur et le chemin d'environ 200 000 fichiers (et de plus en plus).J'ai utilisé la bibliothèque JCIFS pour vérifier si le fichier existe à l'emplacement désigné un par un en utilisant quelque chose comme:

SmbFile file = new SmbFile(fullPath, getNtlmPasswordAuthentication());
if(file.exists()) {
     return true;
}

Le processus prend quelques heures.J'essaie de trouver un moyen d'accélérer le processus.Les fichiers devaient être vérifiés répartis sur 40 répertoires.Chaque répertoire peut contenir quelques milliers de fichiers.L ' SmbFile API a une listFiles () fonction qui me permet d'ouvrir un répertoire et de récupérer un tableau de SmbFile dans ce dossier.Je me demande si je suis sur la bonne voie et si quelqu'un a une meilleure idée.Merci!

Était-ce utile?

La solution

Vous devriez absolument utiliser listFiles ().Si je comprends bien les choses, votre approche aboutit à une requête par fichier, et listFiles () vous donnera une requête par répertoire - je m'attendrais à une vitesse de x1000 environ

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top