2009-12-29 1 views
0

좋아요, 아마도 여기에 정말 간단한 것이 빠졌을 것입니다. 그러나 저는 한 시간이 넘었고 어디에도 없었습니다. :(Microsoft의 Visual C# 2008 Express Edition을 사용하는 C# 프로젝트가 있습니다. 저장 대화 상자가 필요에 따라 나타나지만 파일을 만들지 않습니다. 실제로 말하면 파일이 지정되면 응용 프로그램이 현재 상태로 유지해야합니다. 데이터를 로그 파일로 저장할 수 있습니다. 지금은 빈 파일을 만들기 위해 ####### 가지를 얻을 수 있다면 행복 할 것입니다. 여기까지 제가 올 수있는 것은 다음과 같습니다 :C#의 저장 대화 상자를 사용하여 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"; 
      } 

     } 
     } 

어떤 제안은 많이 주시면 감사하겠습니다 감사합니다

답변

3

SaveFileDialog의 OpenFile() 메서드 대신 saveFileDialog1.FileName을 직접 사용한다는 점을 제외하면 Gabriel의 대답이 정확합니다. 응용 프로그램이 부분 신뢰 환경에서 작동하게하려면 OpenFile()을 사용하고 직접 stread에 액세스해야합니다.

자세한 내용은 this MSDN article을 참조하십시오.

여기에 해당하는 코드입니다 :

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

감사 매트; 그 위대한 작품! –

3

이 작동합니다..

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); 
관련 문제