Y a-t-il un moyen de supprimer (en utilisant Je sais que vous pouvez lire le répertoire, itérer chaque nom de fichier, lire les 5 premiers caractères, comparer et s'il correspond à la suppression, mais, est-ce qu'il y a un moyen plus facile (c'est ce que je fais actuellement en passant)? p>
Ceci est standard C, car le code s'exécute sur Linux et Windows. sup> p> Supprimer () code>) plusieurs fichiers à l'aide d'un
* code> (caractères génériques)?
J'ai un ensemble de fichiers qui commencent tous avec index. Par exemple:
index1.txt code>,
index-39.txt code> etc.
Ils commencent tous avec index mais je ne sais pas quel texte suit. Il existe également d'autres fichiers dans le même répertoire afin de supprimer tous les fichiers ne fonctionneront pas. P>
3 Réponses :
Si cela ne vous dérange pas d'être spécifique à la plate-forme, vous pouvez utiliser le système ici est une documentation sur le système system () code> appel:
système () code> appel, qui fait partie de la norme C Bibliothèque (CSTDLIB). P> P>
Système CODE> est une implémentation spécifique par définition. J'ajoute donc toujours un cavalier pour rechercher la documentation du vendeur correspondante (si vous pouvez le trouver). Principe des moins surprises.
Merci, mais système () est un cauchemar de sécurité.
Comme vous le signiez, vous pouvez utiliser DIOPEN, DIRREAD, DIRCLOSE pour accéder au contenu de l'annuaire, une fonction de votre propre (ou transformer les caractères génériques en une rééglementation et utilisez une bibliothèque de regex) pour correspondre, et dissimulez-le à la suppression. p>
Il n'y a pas de moyen standard de faciliter cela. Il y a probablement des bibliothèques, mais ils ne seront pas plus efficaces que ce que vous faites. Généralement, une fonction de recherche de fichier prend un rappel où vous fournissez la partie correspondante et action du code. Tout ce que vous seriez en train d'économiser, c'est la boucle. P>
Merci d'avoir répondu. J'apprécie toujours quand les gens vous disent quand quelque chose ne peut pas être fait, au lieu de vous faire bs'er.
Sur UNIX Au lieu de convertir les caractères génériques en expressions régulières, vous devez utiliser Fnmatch ( OpenGroup. Org / OnlinePubs / 000095399 / Fonctions / fnmatch.html ).
Est-ce que tout le programme fait? Si tel est le cas, laissez la ligne de commande effectuer l'expansion générique pour vous: sous Windows, vous devez créer un lien avec "Setargv.Obj", inclus dans le répertoire Standard Standard VC. P > p>