2009-12-29 8 views
0

D'accord, il me manque probablement quelque chose de vraiment simple ici, mais ça fait maintenant plus d'une heure que je suis là et je n'arrive à rien. :(J'ai un projet C# en utilisant Visual C# 2008 Express Edition de Microsoft.La boîte de dialogue Enregistrer apparaît comme souhaité, mais il ne fait jamais le fichier.Pratiquement parlant, une fois le fichier est spécifié, je voudrais que l'application pour le maintenir à jour les données sous forme de fichier journal Pour l'instant, je serais content si je pouvais obtenir le truC####### pour faire un fichier vide Voici ce que j'ai pu trouver jusqu'à présent:Comment utiliser une boîte de dialogue Enregistrer en C# pour enregistrer un fichier texte ASCII?

 private void saveLogAsToolStripMenuItem_Click(object sender, EventArgs e) 
     { 
     if (DialogResult.OK == saveFileDialog1.ShowDialog()) 
     { 
      // If the file name is not an empty string open it for saving. 
      if (saveFileDialog1.FileName != "") 
      { 
/* This does not work. 
       // Saves the Image via a FileStream created by the OpenFile method. 
       System.IO.FileStream fs = (System.IO.FileStream)saveFileDialog1.OpenFile(); 
       fs.Write((byte)"Success!\r\n", 0, 10); 
       fs.Close(); 
*/ 
      } 
      else 
      { 
       textBox1.Text += "An invalid filename was specified.\r\n"; 
      } 

     } 
     } 

Toute suggestion serait très apprécié Merci

Répondre

3

La réponse de Gabriel est correcte, sauf qu'il utilise directement saveFileDialog1.FileName, plutôt que la méthode OpenFile() sur SaveFileDialog. Si vous voulez que votre application fonctionne dans des environnements de confiance partielle, vous devez utiliser OpenFile() et accéder directement au champ. Pour plus d'informations, voir this MSDN article.

Voici le code équivalent:

using (var stream = dlg.OpenFile()) 
using (var writer = new System.IO.StreamWriter(stream)) 
{ 
    writer.WriteLine("Success"); 
} 
+0

Merci Matt; ça marche super! –

3

Cela fonctionne:..

using (System.IO.TextWriter tw = new System.IO.StreamWriter(saveFileDialog1.FileName)) 
{ 
    tw.WriteLine("Success"); 
} 
1
FileInfo fi = new FileInfo(saveFileDialog1.Filename); 
StreamWriter stm = fi.OpenWrite; 
// or 
FileStream stm = fi.Open(FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); 
Questions connexes