2010-12-14 21 views
1

Beloew est mon code que je veux sauver quelques informations sur la touche utilisateur pour être enregistrées dans le fichier, comment ça se fait que je continue à rencontrer l'erreur IOException après debugger et cliquez sur le bouton Enregistrer .. pls avec bonté adv..thks !!! Je suppose que cela a quelque chose à voir avec le filefolder mais ont absolument aucune idée ..erreur IOException lorsque le bouton Enregistrer est sélectionné

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 
using System.IO; 

namespace ASSISNMENTTT 
{ 
    public partial class Registeration : Form 
    { 
     public Registeration() 
     { 
      InitializeComponent(); 
     } 

     private void Btn_Save_Click(object sender, EventArgs e) 
     { 
      // This is the button labeled "Save" in the program. 
      // 
      File.WriteAllText("C:\\demo.txt", Tb_Admin.Text); 
      File.WriteAllText("C:\\demo.txt", Tb_Name.Text); 
      File.WriteAllText("C:\\demo.txt", Tb_Gender.Text); 
     } 
    } 
} 
+2

Pouvez-vous donner la trace de la pile et le message d'exception? –

+0

Essayez d'enregistrer le fichier à un emplacement différent, comme dans votre profil utilisateur. Vous ne pouvez pas avoir accès en écriture à C: \ – shf301

+0

Comme quelqu'un l'a souligné sur ma réponse supprimée - vous obtenez une exception UnauthorizedAccessException s'il y a un problème d'autorisation, pas une exception IOException. Ma mémoire doit partir! –

Répondre

0

vous êtes le plus probable sur Win7 ou Vista et ne pas avoir accès au lecteur C: \.

+0

L'accès au chemin 'C: \ demo.txt' est refusé. –

+0

@Jun, alors oui, j'ai raison. Par défaut, vous n'avez pas accès au répertoire racine du lecteur c. Essayez d'enregistrer le fichier dans c: \ users \ {votre_nom_utilisateur} \ desktop \ demo.txt – AngryHacker

+0

Bonjour Hacker en colère ... votre nom d'utilisateur se réfère au nom de mon ordinateur? –

0

Si votre application a accès au lecteur C: \, demo.txt est probablement marqué en lecture seule car WriteAllText tentera d'écraser le fichier.

Ce code montre un UnauthorizedAccessException avec le même texte d'erreur que vous formulez des commentaires sur votre question et de l'autre réponse.

static void Main(string[] args) 
{ 
    var demoTxt = new FileInfo("C:\\demo.txt"); 
    demoTxt.Attributes |= FileAttributes.ReadOnly; 

    WriteAllText("should succeed"); 


    try 
    { 
     demoTxt.Attributes |= FileAttributes.ReadOnly; 
     WriteAllText("should fail"); 
    } 
    catch (UnauthorizedAccessException uae) 
    { 
     Debug.WriteLine(uae.ToString()); 
    } 
} 

static void WriteAllText(string text) 
{ 
    // This is the button labeled "Save" in the program. 
    // 
    File.WriteAllText("C:\\demo.txt", text); 
} 

Pour référence future, cela peut vous aider à fournir plus d'informations pour les postes SO.

private void Btn_Save_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      // This is the button labeled "Save" in the program. 
      // 
      File.WriteAllText("C:\\demo.txt", Tb_Admin.Text); 
      File.WriteAllText("C:\\demo.txt", Tb_Name.Text); 
      File.WriteAllText("C:\\demo.txt", Tb_Gender.Text); 
     } 
     catch(IoException ex) 
     { 
      //View the Output Window, copy the text to your question 
      System.Diagnostics.Debug.WriteLine(ex.ToString()); 
     } 
    } 
+0

Salut Austin, dois-je tout d'abord créer un nouveau dossier dans c lecteur nommé la première démo? –

+0

Aucun dossier n'est nécessaire. Le fichier en lecture seule est une option basée sur vos commentaires. –

+0

im toujours rencontrer la même erreur qui ne sais pas où a mal tourné .. mais beaucoup à Austin pour l'aider à rendre –