Parcourir les répertoires - Renommer et Supprimer les fichiers

Soyez le premier à donner votre avis sur cette source.

Vue 3 614 fois - Téléchargée 631 fois

Description

Ce code permet de se déplacer dans un répertoire, de renommer et de supprimer
les fichiers. Il ne fonctionne que sous Linux. Ce code peut aussi servir de
tutoriel. Une aide est incluse dans le programme, j'espère qu'il vous sera utile.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cptpingu
Messages postés
3801
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 novembre 2019
90 -
Bonjour.

Le programme fait ce qui est décris, pas de souci là dessus. Petite remarque: Vu que tu utilises des fonctions POSIX, ce n'est pas seulement compatible Linux, mais aussi compatible avec ceux qui implémentent les fonctions POSIX (*BSD, MAC, et je crois même que Windows l'implémentent partiellement).

Trois choses tout de même, qui m'interpellent:
- Pourquoi faire un sleep avant tes exits ? L'utilisateur est inutilement obligé d'attendre en cas d'erreur. Je ne vois aucun aspect positif à faire cela (c'est au contraire très embêtant).
- L'utilisation à outrance des exits (beurk). On préfère généralement remonter les erreurs proprement à coup de "return", plutôt que d'arrêter abruptement le programme. Ici, comme tu es dans le main, de toute façon, un return et un exit auront le même effet (ce qui est moins gênant). D'une manière générale, on utilise rarement un exit (et quand on le fait c'est indirectement via "assert"). Il faut toujours remonter les erreurs, et éviter d'interrompre un code n'importe où, au risque de se retrouver avec un code "spaghetti".
- La fonction monolithique est bien horrible. Un code bien fait et bien pensé, est découpé en petites fonctions. En C, en générale, on dépasse rarement une trentaine de lignes. Même si le code n'est pas long, c'est dommage de faire un bon exemple sur le fond, mais qui n'est pas terrible sur la forme. Vu que ce sont essentiellement des débutants qui vont lire ce code, les habituer à un découpage propre est plus pédagogique.
Supafresh
Messages postés
40
Date d'inscription
samedi 1 février 2014
Statut
Membre
Dernière intervention
7 août 2014
3 > cptpingu
Messages postés
3801
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 novembre 2019
-
J'ai l'habitude de découper mes programmes quand je fais du réseau ou quand j'utilise des tas de fonctions. Mais pour ton plaisir et celui des débutants je le découperais la prochaine fois que je programmerais en C. Merci pour ta critique, je verrais ce qui ce passe sous Windows.
BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
13 > Supafresh
Messages postés
40
Date d'inscription
samedi 1 février 2014
Statut
Membre
Dernière intervention
7 août 2014
-
Salut,

Je n'ai aucun avis sur ton utilisation de la CRT pour l'accès aux fichiers, cptpingu sait nettement mieux que moi ce qu'il y a à en dire vu que je n'utilise jamais.

Par contre sous Windows je peux affirmer que tout ceci n'a rien à y faire si ce n'est produire des EXEs énormes et contre performants.

Bonne continuation.
Supafresh
Messages postés
40
Date d'inscription
samedi 1 février 2014
Statut
Membre
Dernière intervention
7 août 2014
3 > BruNews
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
1-Désolé mais je n'ai pas compris, pourrais tu expliquer clairement ce que tu veux dire.
2-Ce programme ne fonctionne pas sous Windows je l'ai déjà dis je crois et il ne cherche pas à être performant de plus il ne fait que quelque lignes, de la à parler d'exes énormes et contre performants c'est exagérer non ?
3- Je crois qu'il n'y a pas de grande différence entre les fonctions POSIX et Windows de 'dirent.h' à part le fait qu'il faut rajouter 'sys/types.h' sous Linux. Mes sources viennent de forums dont je n'ai plus les liens ( désolé ).
Si je me trompe dites le moi.
nagaD.scar
Messages postés
4265
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
16 -
salut, je ne vais pas remuer le couteau vu que certaines choses ont été écrites, mais simplement tu as une boucle :

while(strcmp(choix, "fin") != 0)
    {


mais le seul moment ou tu donne des infos de chaines c'est lors du parcours. à mon avis il sera plus interessant de faire un
do{

}while( ... )

du fait que dans tous les cas il y a un premier passage (ne serai-ce que pour le menu), et donc on évite une instruction de test inutile, et de même retirer les exit comme ca a été indiqué, et tester "chx == 5" dans le while ( => et donc plutot que faire
strcmp(choix, "fin")
tu met simplement chx à 5 pour sortir de la boucle).

Enfin bon ton code fait ce qu'il doit faire, certe, mais semble encore un peu brouillon (c'est aussi le but ici, apprendre et donner des infos ;] )

bon dev.
naga

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.