Dans le Menu contextuel (Shift+F10), ne vois-tu rien d'anormal dans: Propriétés Donner accès à Si tu redémarres ton ordi et que tu exécutes ce code juste après, obtiens-tu le même résultat? Ton fichier n'est pas vide? On ne sait jamais ...
Le Tout est souvent plus grand que la somme de ses parties.
31 fichiers correctement traités ; échec du traitement de 0 fichiers
changement d'attribut reussie
Permission denied
la case "lecture seule" reste cochée...
31, c'est bien le nombre de dossiers et fichiers de mon dossier de test
Ah, Ah, Ah !!! ce code change les permissions, pas les attributs...
Pour changer les attributs :
// Changement des attributs des fichiers
if(system("attrib -r E:\\Test\\*.* /s") == -1)
{
printf("changement d'attribut echoue\n");
perror(""); // perror() pour decrire l'erreur.
exit(1);
}
else
{
printf("changement d'attribut reussi\n");
}
Du coup, je réalise qu'il est important de modifier les permissions avant d'effectuer des renommage et suppression de fichiers et de dossiers. Je vais donc rajouter ces deux bouts de code mais une question me vient :
est-ce que "administrateur" dans la commande icacls suffit pour changer les permissions, quel que soit le compte sur lequel on se trouve, ou bien faut-il récupérer le nom d'utilisateur du dossier (pas celui qui se trouve dans l'arborescence de l'explorateur, mais celui que l'on trouve avec >clic droit > propriétés > sécurité... Et dans ce cas, comment faire pour récupérer ce nom ?
Du coup, je réalise qu'il est important de modifier les permissions avant d'effectuer des renommage et suppression de fichiers et de dossiers.
Je trouve que c'est une mauvaise idée. Sinon à quoi servirait de définir des attributs ?
Il me semble que la bonne de démarche, c'est de laisser à l'utilisateur le choix des attributs, par exemple le choix de protéger un fichier contre l'effacement. Le programme, lui, doit respecter les choix de l'utilisateur, en particulier il doit retourner une erreur s'il cherche à effacer un fichier protégé. (Un programme qui efface des fichiers que l'utilisateur a voulu protéger, n'est-ce pas plutôt un virus ?...)
Bref, c'est à mon avis ta première version qui est correcte.
Je suis d'accord avec robun qu'il faut laisser au propriétaire le choix de protéger son fichier. Petite suggestion, placer le nom du fichier dans une chaîne. Ce sera moins risqué de se tromper si on fait plusieurs réféarences à ce nom.
Le Tout est souvent plus grand que la somme de ses parties.
robun, PierrotLeFou, votre réflexion est empreinte de sagesse, cependant, lorsqu'on souhaite confier à un programme la compression en zip des images d'un répertoire et de ses sous-répertoires et uniquement les images ; que ce programme doit renommer les images .bmp, .png, .jpeg, .tiff en .jpg ; qu'il doit supprimer ensuite ces images, ainsi que les répertoires vides, il doit pouvoir modifier les attributs des images et il est préférable qu'il ait les droits sur les fichiers non ?
Ma question demeure :
est-ce que "administrateurs" dans la commande icacls suffit pour changer les permissions, quel que soit le compte sur lequel on se trouve, ou bien faut-il récupérer le nom d'utilisateur du dossier (pas celui qui se trouve dans l'arborescence de l'explorateur, mais celui que l'on trouve avec >clic droit > propriétés > sécurité... Et dans ce cas, comment faire pour récupérer ce nom ?
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.