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

cs_bonagad 87 Messages postés vendredi 22 décembre 2006Date d'inscription 19 mai 2012 Dernière intervention - 13 mai 2012 à 18:11 - Dernière réponse : cs_bonagad 87 Messages postés vendredi 22 décembre 2006Date d'inscription 19 mai 2012 Dernière intervention
- 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,
Afficher la suite 

8 réponses

Répondre au sujet
Utilisateur anonyme - 18 mai 2012 à 21:19
+3
Utile
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!
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Utilisateur anonyme
NHenry 14135 Messages postés vendredi 14 mars 2003Date d'inscription 24 avril 2018 Dernière intervention - 13 mai 2012 à 18:42
0
Utile
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
---
Commenter la réponse de NHenry
cs_bonagad 87 Messages postés vendredi 22 décembre 2006Date d'inscription 19 mai 2012 Dernière intervention - 14 mai 2012 à 17:21
0
Utile
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.
Commenter la réponse de cs_bonagad
NHenry 14135 Messages postés vendredi 14 mars 2003Date d'inscription 24 avril 2018 Dernière intervention - 15 mai 2012 à 21:14
0
Utile
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
---
Commenter la réponse de NHenry
Utilisateur anonyme - 15 mai 2012 à 22:38
0
Utile
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
Commenter la réponse de Utilisateur anonyme
cs_bonagad 87 Messages postés vendredi 22 décembre 2006Date d'inscription 19 mai 2012 Dernière intervention - 18 mai 2012 à 16:06
0
Utile
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
Commenter la réponse de cs_bonagad
NHenry 14135 Messages postés vendredi 14 mars 2003Date d'inscription 24 avril 2018 Dernière intervention - 18 mai 2012 à 21:04
0
Utile
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
---
Commenter la réponse de NHenry
cs_bonagad 87 Messages postés vendredi 22 décembre 2006Date d'inscription 19 mai 2012 Dernière intervention - 19 mai 2012 à 12:44
0
Utile
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
Commenter la réponse de cs_bonagad

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.