Problème d'autorisation ou de permission sur la création d'un fichier sous wind

Résolu
cs_bonagad Messages postés 87 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 19 mai 2012 - 13 mai 2012 à 18:11
cs_bonagad Messages postés 87 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 19 mai 2012 - 19 mai 2012 à 12:44
Bonjour les amis,
Il y a un code qui me dérange depuis quelques jours et je ne trouve pas la solution jusqu'à présent.
Vous avez ci-après le code qui permet de créer un fichier sur disque.

Dim fs As FileStream = File.Create("C:\Program Files (x86)\IBIOUCHE\myfile.drt")


Ce code a toujours marché. mais j'ai constaté hier seulement que le code ne marche que sous windows XP. Car lorsque j'essaie d'exécuter ce code sous wondows 7 il me pose un probllème de sécurité; du genre : << L'accès au chemin d'accès 'C:\Program Files (x86)\IBIOUCHE\myfile.drt' est refusé. >>

J'ai donc décidé de faire des recherches sur tout ce qui concerne la sécurité du code et les permissions. j'ai tenté un semble de codes parmi lesquels :
   Sub AddDirectorySecurity(ByVal FileName As String, ByVal Account As String, ByVal Rights As FileSystemRights, ByVal ControlType As AccessControlType)
        ' Create a new DirectoryInfoobject.
        Dim dInfo As New DirectoryInfo(FileName)

        ' Get a DirectorySecurity object that represents the 
        ' current security settings.
        Dim dSecurity As DirectorySecurity = dInfo.GetAccessControl()

        ' Add the FileSystemAccessRule to the security settings. 
        dSecurity.AddAccessRule(New FileSystemAccessRule(Account, Rights, ControlType))

        ' Set the new access settings.
        dInfo.SetAccessControl(dSecurity)

    End Sub

    Sub AddFileSecurity(ByVal fileName As String, ByVal account As String, _
        ByVal rights As FileSystemRights, ByVal controlType As AccessControlType)

        ' Get a FileSecurity object that represents the 
        ' current security settings.
        Dim fSecurity As FileSecurity = File.GetAccessControl(fileName)

        ' Add the FileSystemAccessRule to the security settings. 
        Dim accessRule As FileSystemAccessRule = _
            New FileSystemAccessRule(account, rights, controlType)

        fSecurity.AddAccessRule(accessRule)

        ' Set the new access settings.
        File.SetAccessControl(fileName, fSecurity)

    End Sub

 AddDirectorySecurity(Application.StartupPath,"Robert", FileSystemRights.FullControl, AccessControlType.Allow)
 Dim fs As FileStream = File.Create(Application.StartupPath & "\myfile.drt")
 AddFileSecurity(Application.StartupPath & "\myfile.drt", "Robert", FileSystemRights.FullControl, AccessControlType.Allow)



Malgré tout essaie l'exception est toujours existante et donc impossibilité de créer le fichier
A présent j'ai besoin de votre aide afin de m'en sorti.
SVP guidez-moi.

merci d'avance
Cordialement,

8 réponses

Utilisateur anonyme
18 mai 2012 à 21:19
Tu peux toujours t'inspirer de cette discussion puisque tu n'as rien compris à nos réponses.

Je me rends compte qu'il y a personne pour m'aider.
Nous vivons dans un monde étrange. Non mais quel culot quand-même!
3
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
13 mai 2012 à 18:42
Bonjour,

Sous 7, il faut le droits d'admin pour écrire dans : C:\Program Files (x86) je crois.

As-tu essayé en lançant ton appli en tant qu'administrateur ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
0
cs_bonagad Messages postés 87 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 19 mai 2012
14 mai 2012 à 17:21
bonjour les amis,
C'est pour répondre à la question de NHenry:

Sous 7, il faut le droits d'admin pour écrire dans : C:\Program Files (x86) je crois.

As-tu essayé en lançant ton appli en tant qu'administrateur ?


Je dis, je me suis bien sûr connecté en tant que administrateur et sans gain de cause.

merci de me répondre promptement;
Cordialement.
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
15 mai 2012 à 21:14
Bonjour,

Ce message d'erreur peut avoir 3 causes courantes :
- Le fichier est en cours d'utilisation ailleurs
- Les droits d'accès ont été modifiés et les droits ne suffisent plus
- Fichier marqué en "lecture seule".

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
15 mai 2012 à 22:38
Bonsoir,
As-tu essayé en lançant ton appli en tant qu'administrateur ?

je me suis bien sûr connecté en tant que administrateur

Se connecter en admin et lancer une appli en admin sont 2 choses bien distinctes
0
cs_bonagad Messages postés 87 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 19 mai 2012
18 mai 2012 à 16:06
Bonjour les amis,

Décidément personne ne me comprend. Moi qui croyait qu'il pourrait exister un code vb net qui pourrait donner de façon automatique les autorisations de création de fichier à des emplacements spécifiques tels que <<c:\programs files\>>, <<c:\windows\system32>> etc...(j'ai constaté que ces répertoires sont sécurisés. Car lorsque même je décide de créer manuellement un fichier sans mon application, le système me demande bien sûr si je veux exécuter effectivement cette action.)

Je me rends compte qu'il y a personne pour m'aider.

Bye Bye

Cordialement
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
18 mai 2012 à 21:04
Bonjour,

"le système me demande bien sûr si je veux exécuter effectivement cette action"
Oui, car il faut les droits d'admin pour écrire.
Donc, il faut essayer en lançant l'appli en tant qu'administrateur, même si tu es déjà connecté sur le compte admin.

Sinon, regardes avec le mot clé RunAs.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
0
cs_bonagad Messages postés 87 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 19 mai 2012
19 mai 2012 à 12:44
Bonjour les amis ,
En ce moment je ne pu m'empêcher de vous étaler toute la joie qui m'amine et ensuite de vous exprimer ma profonde gratitude car j'ai eu gain de cause.
Mille fois merci à tous ceux qui ont eu l'amabilité de tenter de me répondre.
merci et Vive Codes-SourceS!!!!

bye bye
0
Rejoignez-nous