Je veux analyser un dossier racine qui est entré par l'utilisateur en utilisant le multi-threading et le multi-traitement à différentes versions. Mais comment puis-je distinguer quand j'analyse un dossier racine si le suivant est un dossier ou un fichier? Pour résumer je veux apprendre comment je peux distinguer le prochain est un dossier ou un dossier. Je veux apprendre ceci parce que si c'est un dossier alors je laisse ouvrir ce dossier à dynamiquement enfiler et/ou traiter. Si c'est un dossier le thread ou processus existant peut continuer son travail sans aucune nécessité de créer un fil différent et/ou processus.J'espère que je peux exprimer mon problème.J'attends vos réponses.Merci.Tout en analysant dans un dossier racine comment puis-je distinguer la prochaine est de savoir si un fichier ou un dossier en langage C?
Répondre
Vous pouvez vérifier si un chemin fait référence à un fichier ou un répertoire à l'aide du stat()
function, et vérifier le champ st_mode
sur la structure retournée (voir http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/stat.h.html).
Sur Windows, vous pouvez utiliser GetFileAttributesEx
pour obtenir les attributs de fichier, que vous pouvez vérifier pour voir s'il s'agit d'un fichier ou d'un répertoire. Notez que tout ce que vous utilisez peut être soumis à une condition de concurrence si le système de fichiers est mis à jour par un autre thread ou processus en même temps, car le fichier/répertoire peut être supprimé et/ou changé après l'avoir vérifié et avant d'y accéder.
Voici quelques exemples rapides. Ce sera à vous de filer à partir de plusieurs emplacements racine, appelez-les récursivement, et synchroniser toutes les données.
Sous systèmes * nix;
struct dirent *entry;
while ((entry = readdir("/root")) != NULL)
{
if (entry->d_type == DT_DIR)
{
// do something
}
}
closedir(dir);
Sous Windows:
WIN32_FIND_DATA findData;
HANDLE hFind = FindFirstFile(("C:\\root" + "*.*").c_str(), &findData);
do
{
if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
// do something
}
} while (FindNextFile(hFind, &findData));
FindClose(hFind);
- 1. Comment distinguer un fichier ou un dossier dans un événement de glisser-déposer dans C#?
- 2. Comment vérifier si un dossier ou un fichier est masqué =
- 3. Comment chercher un dossier dans un dossier en C#?
- 4. Créer un dossier en lecture seule en langage C
- 5. copier tout le contenu d'un dossier dans un autre dossier en utilisant un fichier batch?
- 6. Foreach fichier dans un dossier en Flash?
- 7. Android Savoir si un fichier est un fichier (.jpg, etc) ou un dossier ET compresser un fichier (.png, etc) et un dossier
- 8. Comment savoir si un objet SPListItem est un document ou un dossier
- 9. Observer un fichier ou un dossier dans Objective-C
- 10. comment redimensionner une image tout en enregistrant dans un dossier
- 11. Vérifiez si un nom de fichier est un dossier ou un fichier
- 12. Ajouter un type de fichier si un fichier existe dans le dossier racine
- 13. Comment savoir si un indexage de contenu est activé dans un dossier Windows?
- 14. zipping un dossier/fichier en utilisant qt
- 15. Comment savoir si un fichier est un fichier EXE ou une DLL?
- 16. Comment vérifier si un dossier est vide
- 17. Comment déterminer si un objet est un fichier ou un dossier
- 18. Comment convertir un dossier en fichier zip?
- 19. Comment vérifier si un fichier existe dans un dossier?
- 20. Comment renommer un dossier/répertoire en C#?
- 21. Git clone tout sauf un fichier ou dossier, possible?
- 22. Comment télécharger un fichier dans un dossier en utilisant webdav?
- 23. Comment déterminer si un chemin donné est un fichier ou un dossier?
- 24. Exclure un dossier racine de l'application CakePHP
- 25. Comment copier un fichier d'un répertoire dans un autre répertoire en créant le dossier si ce dossier n'existe pas
- 26. Comment valider le dossier racine (tout en bas) en utilisant svnKit, sans fournir de fichier spécifique?
- 27. Comment vérifier si FileObject est un dossier?
- 28. racine htaccess/sous-dossier et racine/sous-dossier/en root/dossier2/sous-dossier/
- 29. Renommer un fichier/dossier dans un fichier zip en Java?
- 30. Comment savoir si un dossier a été définitivement supprimé