Lecture seul,fichier archive,fichier caché

Signaler
Messages postés
353
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
29 juin 2011
-
Messages postés
353
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
29 juin 2011
-
Bonjour a tous je m'appele hugo et jai 14 ans je voudrais savoir si il est possible  d'enlever ou de mettre tous les fichier d'un repertoire choisi en lecture seul, fichier archive ou fichier caché lorsque que l'utilisateur click sur un button.J'aurais besoin juste du code car jen'ai aucune idée de se qu'il faut mettre  pour enlever ou mettre les fichier en lecture seul ...car pour l'evenement click du button et l'interface je sais faire.Je suis consient que je vous demande du code tous cuit donc je comprendrait si vous ne vouler pas me repondre.
Merci d'avance pour vos réponse.

38 réponses

Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
13
Il faut utiliser la commande "attrib" qui date de DOS.
Elle est dans Windows : tu n'as qu'a faire ceci :

Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Public Sub AttribAll(Directory As String, Optional Files As String = "*.*")
ShellExecute 0&, "OPEN", "attrib", "+R+A+S+H " & Files, Directory, 0&
End Sub , ----
[code.aspx?ID=41455 By Renfield]
_______________________________________________________________________
VB.NETis good ...VB6is better
Messages postés
353
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
29 juin 2011

Merci pour ta réponse aussi rapide ghuysmans99.
Je vais essayer.
Messages postés
353
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
29 juin 2011

 Rebonjour en fait le probleme ce que je voudrait que lorsque que l'utilisateur click sur un button sa enleve les lecture seul fichier archive et caché.
Mais le probleme ce que le code que tu ma donné je ne peut pas le mettre dans un evenement click d'un button donc je sais pas comment faire.
J'atends ta réponse ou d'autre réponse merci d'avance
Messages postés
353
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
29 juin 2011

Qelqu'un aurait t'il une réponse
D'avance merci
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Et pourquoi ne pourrais-tu pas le mettre dans un bouton ?

Sur l'évènement click du bouton, il te suffit d'appeler la fonction AttribAll en lui passant les bons paramètres.

Attention, le code que t'as donné [auteur/GHUYSMANS99/549970.aspx ghuysmans99]est valable pour VB6. Si tu es en VB2005 il faut remplacer tous les Long par des Integer dans la ligne Declare.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
353
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
29 juin 2011

Donc si j'ai bien compris j'ecrit le code qu'il ma donnée en changant les long en integer apres j'apelle ma fonction dans mon click et normalement sa marchera,quant l'utilisateur clickera sur le button sa lancera la function
et sa enlevera tus les atribut des fichier ces sa, ou il manque du code
Merci d'avance pour vos réponse
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
13
Ben oui ça marchera !
Au fait, j'avais pas vu que c'était censé être du VB2K5 ...
_______________________________________________________________________
VB.NETis good ...VB6is better
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
oui enfin presque

Consulte l'aide de la commande Attrib (dans l'aide de Windows).

Dans le code donné, les paramètres passés ("+R+A+S+H ") auront pour effet de rajouter (+) les attributs lecture seule(R), archive (A), fichier system (S) et fichier caché (H).

Si tu veux enlever un attribut au fichier, il faut le faire précédé du signe -
Donc pour toi ça serait plutot "-R-A-H"

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
ET puis la ligne "Declare Function .... " est a mettre au niveau module, pas au niveau d'une sub (=à copier tout en haut d'un fichier de module, en dehors de toutes déclaration de sub ou de function ou autre)
Messages postés
353
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
29 juin 2011

Merci a tous pour vos réponse je test et je vois si je n'ai pas de probleme.
Encore merci de m'avoir répondu et vite en plus.
Messages postés
353
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
29 juin 2011

Mais la ligne "Declare function" il faut que je la mette quand meme dans ma declaration de classe ou pas ?
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
13
Euh je sais pas vu que c'est .NET ...
_______________________________________________________________________
VB.NETis good ...VB6is better
Messages postés
353
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
29 juin 2011

Bon ce pas grave je vais essayer et je vois si je n'ai pas de probleme.
Par contre pour appeler ma fonction dans l'evenement click de mon button je mais bien ca ou je me trompe:
Je dois mettre le nom de la function donc j'ecrit attriball.
Si ces sa casy m'avait parler de mettre les parametres mais je ne vois pas du tous de quoi il parle
D'avance merci pour vos réponse.
Messages postés
353
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
29 juin 2011

Ce bon je n'ai aucun probleme apparent sauf que je ne sais pas se qui faut que je marque pour appeler ma function avec les parametres..
Je ne sais pas si ce que j'ai mis le message d'avant et juste.
J'atends une réponse, merci d'avance
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Ta fonction attend comme paramètre, le répertoire dans lequel les fichiers à traiter se trouvent. Eventuellement tu peux aussi lui passer le fichier ou un masque de fichier à traiter, mais ceci n'est pas obligatoire. Par défaut c'est le masque "*.*" qui est pris, c'est à dire que tous les fichiers du répertoire seront traiter.

Imaginons que tes fichiers se trouve dans le répertoire C:\VbFrance\Temp,

Pour traiter tous les fichiers, tu appelera ta fonction ainsi : AttribAll("C:\VbFrance\Temp")

Pour ne traiter que les fichiers .txt : AttribAll("C:\VbFrance\Temp" , "*.txt")

Si tu ne veux traiter que le fichier calimero.mpg : AttribAll("C:\VbFrance\Temp" , "calimero.mpg")

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
353
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
29 juin 2011

Donc si j'ai bien compris je dois mettre le repertoire sur lequel il y aura les modifications a faire pour les parametres.
Mais juste une derniere question et ce que sa marche si il y a par exemple des sous dossier dans le repertoire ("C:\VbFrance\Temp").
Messages postés
353
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
29 juin 2011

En fait j'ai mal poser ma question le probleme ces qu'il faut que je mette comme paramètre, le répertoire dans lequel les fichiers à traiter se trouvent,
mais en fait le probleme ces que ce répertoire change vu que l'utilisateur choisi son répertoire.
D'avance merci pour vos réponse.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Non, telle qu'est faite la fonction pour le moment cela ne marche que pour les fichiers du répertoire indiqué.

Si tu veux aussi traiter automatiquement tous les fichiers de tous les sous-répertoires il faut que tu modiife la fonction de la sorte :

Public Sub AttribAll(Directory As String, Optional Files As String = "*.*")
ShellExecute 0&, "OPEN", "attrib", "-R-A-H " & Files & " /s" , Directory, 0&
End Sub

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
353
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
29 juin 2011

A j'ai un pb si je m'ai ce que tu ma donné casy j'ai plein d'erreur....
Messages postés
353
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
29 juin 2011

Tiens je te donne l'erreur:
Argument non spécifié pour le paramètre 'lpDirectory' de 'Declare Ansi Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (hwnd As Integer, lpOperation As String, lpFile As String, lpParameters As String, lpDirectory As String, nShowCmd As Integer) As Integer'.