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 :

System.UnauthorizedAccessException : création fichier dans ProgramFiles..


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 37
    Par défaut System.UnauthorizedAccessException : création fichier dans ProgramFiles..
    Bonsoir,

    j'ai développé une petite application qui a un moment crée un fichier texte dans le même fichier que l'application.

    Le problème : lorsque j'installe mon appli à l'aide d'un installeur, le programme se trouve dans Program Files et au moment de la création du fichier j'ai une erreur (voir pj) :

    Alors certains me diront : "il manque les droit d'écriture sur le dossier".
    Oui mais lorsque l'utilisateur lambda va installer le soft, je vais pas lui demander activer les droits

    J'utilise le code suivant pour la création du fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim sw As StreamWriter
     
                    sw = New StreamWriter(Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\")) & "\URL.txt")
                    sw.WriteLine(txturl)
                    sw.Close()
    Avez-vous une solution ?
    Merci.
    Images attachées Images attachées  

  2. #2
    Membre chevronné Avatar de Jerede
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2010
    Messages : 271
    Par défaut
    Essaye cela :

    Tu va dans les propriétés du projet, tu défini ton application en temps que Click-Once de confiance total.
    Tu va dans le manifest et tu remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      <requestedExecutionLevel level="asInvoker" uiAccess="false" />
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 37
    Par défaut
    Merci de ta réponse mais après avoir modifié ces paramètres, j'ai l'erreur suivante :

    ClickOnce does not support the request execution level "requireAdministrator'
    Et si je désactive le ClickOnce, il demande à chaque fois"Voulez vous executer le programme". ;(

    Plutôt gênant si je veux le lancer au démarrage. J'utilise Inno Setup comme installeur : source de mes problèmes ?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    C'est normal, depuis Windows Vista seul un administrateur a le droit d'écrire dans Program Files. Donc soit tu exécutes en tant qu'admin, soit tu écris ailleurs...

    De toutes façons, les données d'application n'ont rien à faire dans Program Files. Il y a un répertoire exprès pour ça, dans le répertoire de profil de l'utilisateur :

    C:\Users\<nom_utilisateur>\AppData\Roaming\<nom_application>

    Pour obtenir ce chemin (sans la dernière partie <nom_application>), utilise Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 37
    Par défaut
    Super, merci à toi !

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

Discussions similaires

  1. Création fichier dans le tJavaRow
    Par hoshizora dans le forum Développement de jobs
    Réponses: 10
    Dernier message: 07/06/2012, 10h32
  2. Création fichier dans un batch
    Par jesuismoi dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 17/04/2010, 14h05
  3. Probléme création fichier dans un script
    Par nicowax dans le forum Unix
    Réponses: 5
    Dernier message: 15/01/2009, 13h19
  4. Création fichier dans SP
    Par MuadDib_CH dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/07/2005, 16h23
  5. création de fichiers dans le disque dur
    Par sex-sansbol dans le forum ASP
    Réponses: 6
    Dernier message: 24/08/2004, 09h39

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