Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1061 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  12000 fichiers dans un repertoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

12000 fichiers dans un repertoire

n°1697706
djobidjoba
Posté le 05-03-2008 à 16:08:27  profilanswer
 

Bonjour, sous Windows avec système ntfs je souhaite mettre à disposition via un serveur de fichier (conçu en C) 12000 fichiers de 5ko max.
tout d'abord, au niveau du FS NTFS, n'y a-t-il pas un risque de stocker autant de petits fichiers dans un même répertoire ?
(chaque fichier à un nom unique)
j'ai testé 200 fopen sur un repertoire de 2000,4000,8000 et enfin 12000 fichier de 1mo sans différence notables.
lors des fopen, il y a t-il une recherche de la part de l'OS du fichier en question ?  
12000 fichiers c'est un début, cela pourrait augmenter assez rapidement.
j'ai un peu peur de stocker autant de fichier dans un seul et même répertoire : déjà à 12000 l'explorateur windows à un peu de mal
j'imagine les ravages d'un crash windows (coupure de courant par ex) suivis d'un bon vieux scandisk.
J'ai pensé a 2 autres solutions de stockage
- creer une image ISO de tous mes fichier et la monter avec un lecteur virtuel
- stocker le tout en base (mysql)
qu'en pensez vous ?

mood
Publicité
Posté le 05-03-2008 à 16:08:27  profilanswer
 

n°1697852
sub1
Posté le 05-03-2008 à 20:36:54  profilanswer
 

Hello,
 
pourquoi ne pas créer une arborescence ?
 
un dossier "a" pous les fichiers commencant par "a", ....
et eventuellement une sous arbo pour la deuxième lettre.
 
Ca me parait être la solution la plus simple à implémenter et ce quel que soit le langage...
 
@+

n°1698089
Bidem
Posté le 06-03-2008 à 11:22:59  profilanswer
 

J'ai déjà eu ce genre de problème et on avait résolu ça en faisant une arborescence de fichier :
 - le répertoire de base contient 256 répertoires nommés de '00' à 'FF'
 - chaque répertoire contient 256 répertoires
 
Ensuite pour savoir dans quel répertoire mettre un fichier il suffit de faire un hash du nom du fichier (SHA-1 ou MD5) et récupérer les 4 premiers caractères pour en déduire le chemin.
 
Exemple :
Un fichier nommé "Zorglub.txt" donnera le hash suivant EDC329B1DEA415CC8F2800B72234D8DB25BDAEAA et ira donc dans le répertoire ED/C3
 
Bien sur avec une telle architecture, on peut gérer un nombre pharaonique de fichier, si pour toi, 12000 fichiers c'est le max, tu peux te contenter de répertoires à 1 seul caractères (de '0' à 'F')
et le fichier exemple ira dans le répertoire E/D.
 
Par contre, pour avoir une recherche efficace d'un fichier, il faut connaître son nom exact car faire une recherche dans plus de 65000 répertoires, c'est pas tip top :)
 
Pour info, si tu prends des répertoires à 1 caractère, ça te fait quand même 256 répertoires différents et avec 12000 fichiers, tu auras une moyenne de 46 fichiers par répertoire


Message édité par Bidem le 06-03-2008 à 11:29:21
n°1698109
Taz
bisounours-codeur
Posté le 06-03-2008 à 11:39:47  profilanswer
 

bah trouve toi la doc sur les perfs / limites de NTFS. Sur d'autres FS genre ext3 / reiserfs, ça ne pose aucun problème ni de perf ni de rien.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  12000 fichiers dans un repertoire

 

Sujets relatifs
Java - fichiers - rechercheprogramme pour supprimer fichiers après 30jrs
Chmod dans script de copie de répertoireRécupérer des fichiers d'un ftp depuis un lien sur un site web ?
[Algo WEB] Suppression de fichiers générés pour téléchargement unique[PHP] Récupérer les noms de tous les fichiers
[Résolu] C# et Crystal report, fichiers temporaires trop volumineux[c++] Récupérer les droits d'accès de fichiers/dossiers sous windows
copier tous les fichiers d'un repertoire 
Plus de sujets relatifs à : 12000 fichiers dans un repertoire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR