Dans un répertoire spécifique, je dois trouver tous les fichiers avec une extension spécifique (par exemple .log) et de l'enregistrer quelque part. Dans le besoin, seules les solutions C++ font que je l'essaye sur win 2003 server et C++ est mes restrictions. Merci MunchRecherche par extensions dans un répertoire spécifique C
1
A
Répondre
3
Vous pouvez énumérer tous les fichiers dans un répertoire à l'aide FindFirstFile
et FindNextFile
(et ne pas oublier d'appeler FindClose
lorsque vous avez terminé). Vous pouvez passer un filtre à ces fonctions pour rechercher uniquement certains noms de fichiers, par ex. directory\*.log
.
Lorsque vous énumérez les fichiers, la structure WIN32_FIND_DATA
qui vous est renvoyée vous indique le nom de fichier et les attributs de chaque fichier (entre autres). Pour chaque fichier, vérifiez les attributs du fichier pour vous assurer qu'il s'agit d'un fichier normal en vérifiant qu'il porte l'indicateur FILE_ATTRIBUTE_NORMAL
pour ignorer les répertoires.
Par exemple:
WIN32_FIND_DATA fileInfo;
HANDLE hFind = FindFirstFile("C:\\directory\\to\\search\\*.log", &fileInfo);
if(hFind == INVALID_HANDLE_VALUE)
; // handle error
else
{
do
{
if(fileInfo.dwFileAttributes & FILE_ATTRIBUTE_NORMAL)
{
printf("Found a .log file: %s\n", fileInfo.cFileName);
}
} while(FindNextFile(hFind, &fileInfo));
if(GetLastError() != ERROR_NO_MORE_FILES)
; // handle error
FindClose(hFind);
}
Questions connexes
- 1. XDocument.Enregistrer dans un répertoire spécifique?
- 2. Installer macruby dans un répertoire spécifique?
- 3. emplacement par défaut du répertoire des extensions MediaWiki
- 4. Recherche dynamique d'un répertoire dans un sous-répertoire
- 5. Recherche d'extensions de fichiers spécifiques dans un dossier/répertoire (PHP)
- 6. Recherche d'un élément spécifique dans un NSArrayController
- 7. Trier les fichiers par le dernier édité après les avoir trouvés dans un répertoire spécifique?
- 8. Extensions C#
- 9. Recherche de répertoire
- 10. multithread Recherche par C#
- 11. Bash - remplacer les fichiers ciblés par un fichier spécifique, espace dans les noms de répertoire
- 12. Comment puis-je sauvegarder mon fichier pdf créé par PHP dans un répertoire spécifique?
- 13. Recherche par programme un utilisateur dans SharePoint
- 14. Fermer automatiquement les fichiers ouverts dans un répertoire spécifique
- 15. recherche listview dans vb.net un-par-un
- 16. Paths charge et Ruby C-Extensions
- 17. Django: recherche sur un EncryptedCharField (django-extensions), est-ce possible?
- 18. LAMP: Définir la racine du document pour un répertoire spécifique
- 19. Recherche d'une date spécifique
- 20. Recherche avancée pour un modèle spécifique Django
- 21. fichier batch Copier les fichiers avec certaines extensions de plusieurs répertoires dans un répertoire
- 22. Sous-répertoire de recherche ASP.Net
- 23. Recherche d'une combinaison d'octets spécifique dans NVARCHAR
- 24. Grails consultable: recherche d'un champ spécifique dans un objet membre?
- 25. Recherche de la valeur d'un enfant dans un attribut spécifique
- 26. Recherche par un ArrayList
- 27. Comment renommer un dossier/répertoire en C#?
- 28. recherche de fichiers dans un répertoire en utilisant php
- 29. écrit le contenu HTML dans un script Perl dans un fichier dans un répertoire spécifique
- 30. Comment ouvrir un répertoire trié par date?
Les fonctions permettent de trouver spécifier un masque/filtre, de sorte que vous ne même pas besoin de vérifier l'extension, il suffit de passer « * .log » à FindFirstFile – Necrolis
@Necrolis: Bon point, j'ai mis à jour ma réponse et ajouté un exemple de code. –