IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Copier la sécurité d'un fichier ou dossier


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Par défaut Copier la sécurité d'un fichier ou dossier
    Bonjour la gang. J'essaie de copier la sécurité d'un fichier ou d'un dossier et je n'y arrive pas...

    J'ai tenté ceci mais cela me donne rien...

    File.SetAccessControl("c:\backup.mdb", File.GetAccessControl("c:\backup2.mdb"))
    Ce code n'est que pour tester mais aucun des utilisateurs ou groupes n'est "copier" à l'autre fichier.

    En gros je dois copier des fichiers et dossiers et garder la sécurité du dossier.

    J'utilisais xcopy mais malheursement j'avais besoin de plus. En gros j'ai fait une mini console application qui fait ce dons j'ai besoin mais il reste la sécurité à copier.

    Merci à tous.

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut recopie du descripteur de securite de fichier
    bonjour
    Essaie plutot ca devrait marcher.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Imports System.Collections.Specialized
    Imports System.IO
    Imports System.Security.AccessControl
    Public Class Form1
          Public Sub New()
            ' Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
     
        End Sub
     
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
           'API WINDOWS =>SECURITY_DESCRIPTOR_CONTROL
            'declare un descripteur de securite 
            Dim descripteurSecuriteFichier As System.Security.AccessControl.ObjectSecurity
            'recupere descripteur de securite du fichier source
            descripteurSecuriteFichier = File.GetAccessControl("C:\Documents and Settings\OUNIS\Bureau\WindowsApplication1\WinAppSettingsExemples\source.txt")
            'copie source => destination 
            File.Copy("C:\source.txt", "C:\destination.txt", True)
            'applique descripteur de securite à la destination
            File.SetAccessControl("c:\destination.txt", descripteurSecuriteFichier)    
    End Sub
    bon code.....

  3. #3
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Par défaut
    malheureusement ça na pas marcher.

    Le InitializeComponent() empèche le click du boutton.

    Le copi marche bien ( le code aussi que j'ai fait pour mes backup marche très bien ) mais dès que j'essais de copier la sécurité je ne suis pas capable.

    Je commence à me douter si c'est pas le fait que je suis sur un domaine que je ne peut pas changer les permissions avec .net. Je peux les changer pourtant avec mon utilisateur.

    Je vais aller esseiller avec l'utilisateur administrateur local voir si le tout risque de mieux marcher.

    Non ... fonctionne pas plus avec l'utilisateur administrateur de l'ordinateur.

  4. #4
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Par défaut
    J'adore sa poster sur un forum. Bien souvent je répond moi-même à mes question. En gros j'ai juste fait ce que je déteste faire : LIRE.

    La page de msdn sur le web : http://msdn.microsoft.com/fr-fr/libr...sscontrol.aspx explique comment copier la sécurité d'un fichier à un autre ( bien plus bas dans la page ).

    Il manquait qu'une seul chose.

    Je poste le code qui fonctionne.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            Dim fichierSource, fichierDestination As System.Security.AccessControl.ObjectSecurity
     
            fichierSource = File.GetAccessControl("C:\backup.mdb")
            fichierSource.GetSecurityDescriptorBinaryForm()
     
            File.Copy("C:\backup.mdb", "C:\backup3.mdb", True)
     
            fichierDestination = File.GetAccessControl("C:\backup.mdb")
     
            fichierDestination.SetSecurityDescriptorBinaryForm(fichierSource.GetSecurityDescriptorBinaryForm())
     
            File.SetAccessControl("C:\backup3.mdb", fichierDestination)
    Merci MABROUKI pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Boucle copier/coller sur tous les fichiers d'un dossier
    Par santadrix dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/10/2012, 10h58
  2. [XL-2007] VBA Copier fichier vers dossier
    Par Floorfiler dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/01/2011, 22h59
  3. Sécurité NTFS D'un fichier ou dossier
    Par noahline dans le forum VBScript
    Réponses: 4
    Dernier message: 13/10/2008, 21h54
  4. Copier 1 fichier dans dossiers 1er niveau
    Par halphorg dans le forum Windows
    Réponses: 2
    Dernier message: 09/03/2008, 19h32
  5. Comment Copier une table dans un fichier?
    Par thx2003 dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/12/2003, 12h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo