comment rechercher l'ordinateur pour les fichiers et les dossiers
j'ai besoin d'un moyen de recherche de l'ordinateur pour les fichiers comme l'Explorateur Windows. je veux que mon programme de recherche permet de dire que le disque dur c:. j'ai besoin d'elle à la recherche de C:\ pour les dossiers et fichiers (seulement ceux que vous avez pu voir dans c:\, puis si l'utilisateur clique sur un fichier dans la liste comme le dossier de test (C:\test), il allait de recherche, de test et de permettre à l'utilisateur de voir quels sont les fichiers/dossiers sont.
Et votre question est... quoi?
C'est une plate-forme spécifique du problème. Vous êtes sur Windows, Unix, etc.?
Si il fait référence à son disque dur comme
À en juger par la façon dont beaucoup de temps
"L'Explorateur Windows" 😀 hint hint
C'est une plate-forme spécifique du problème. Vous êtes sur Windows, Unix, etc.?
Si il fait référence à son disque dur comme
C:
et de répertoires comme des "dossiers", il est assez évident que sa plate-forme peut-être... 😉 Oh, et la barre oblique inverse séparateur de chemin d'accès type de la donne aussi.À en juger par la façon dont beaucoup de temps
C:
a été mentionné, je pense que Windows est un pari sûr."L'Explorateur Windows" 😀 hint hint
OriginalL'auteur blood | 2010-07-29
Vous devez vous connecter pour publier un commentaire.
Puisque vous avez mentionné windows, le plus simple winapi façon de le faire est avec FindFirstFile et FindNextFile fonctions.
edit: Voici un exemple qui vous montre comment énumérer tous les fichiers/dossiers dans un répertoire.
Non, il trouve à la fois. Il vous permet également de donner un critère de recherche pour trouver les fichiers/dossiers.
J'ai ajouté un exemple.
😀 ça a l'air de tyvm homme.
il semble que vous êtes correct, j'ai édité la réponse.
OriginalL'auteur
Ce sera OS dépendante. La DONC, la question
Comment puis-je obtenir une liste des fichiers d'un répertoire à l'aide de C ou C++?
gère bien ce problème. Vous pouvez télécharger DIRENT ici.
Maintenant que vous avez cela, je vous recommande de manière récursive, à la recherche d'un fichier avec un DFS/BFS algorithme. Vous pouvez supposer que l'ensemble de la structure de répertoire est un arbre où chaque fichier est un nœud feuille et chaque sous-répertoire est un noeud interne.
De sorte que tous vous avez à faire est,
void getFilesFolders(vector<string> & dir_list, const string & folder_name)
jouer avec dirent pour voir si elle fonctionne revenir à vous, à qui
heu ... je ne peux pas me dirent-je le télécharger mais il s'ouvre comme un .9 fichier et c'est tout. ai-je raté quelque chose parce que j'ai juste téléchargé à partir de votre lien
softagalleria.net/download/dirent/dirent-1.9.zip --- Peut-être le .9.zip est source de confusion, décompressez votre programme. Je vois toute la VC projet ici.
Le VC projet à ce lien a également un fichier de démonstration qui imprime le contenu d'un répertoire.
OriginalL'auteur
boost::filesystem peut être une solution multi-plateforme pour que (check out pour de telles fonctions).
Pas vraiment 3ème partie logiciel tellement, boost est pratiquement considéré comme la norme par les programmeurs en C++, mais vous ne semblez pas être celui qui aime l'utilisation de bibliothèques standards (autres que iostream, un de C++de moindre grandes caractéristiques).
OriginalL'auteur
Vous pouvez utiliser
Directory
les membres de la classe pour ce faire avec le C# ou C++. Consultez l'article MSDN suivant:http://support.microsoft.com/kb/307009
Si vous souhaitez utiliser C++ avec les MFC, vous pouvez utiliser
CFileFind
http://msdn.microsoft.com/en-us/library/f33e1618%28v=VS.80%29.aspx
Vous aurez à fournir votre propre fenêtre de navigation afin de présenter l'arborescence du système de fichiers.
Ou vous pouvez utiliser l'un des répertoire/fichier de commandes pour effectuer à la fois pour vous.
Merci pour la clarification. J'ai ajouté des informations supplémentaires dans le cas où il souhaite l'utiliser en C++ sans .NET.
😐 je ne vois pas l'info
Peut-être que frappé le bouton actualiser. J'ai ajouté une ligne sur CFileFind et un lien vers la page de doc MSDN.
je n'ai >_> il ne s'est pas actualisé, je suppose
OriginalL'auteur
Utilisation FindClose() pour fermer le handle, ouvert avec FindFirstFile(). CloseHandle() throw "handle non valide" en mode de débogage.
OriginalL'auteur
Il n'y a vraiment pas besoin d'utiliser la 3ème partie de la bibliothèque de l'accomplir. C'est un court, fonction indépendante qui répertorie tous les fichiers (avec leurs chemins d'accès) dans un répertoire, y compris subdiretories fichiers.
std::string folderName
a pour en finir avec\
, et si vous voulez la liste de tous les fichiers sur l'ordinateur, il suffit de créer une boucle dans l'appel de la fonction ainsi que les GetLogicalDriveStrings (Il renvoie des chaînes avec\
, de sorte qu'il ne pouvait pas être plus pratique dans ce cas).C'est la version ASCII, rappelez-vous que les fichiers et les dossiers peuvent être nommés dans Unicode
OriginalL'auteur