2017-02-17 2 views
1

Ich habe einen Bericht, und ich möchte es direkt ohne einen Dialog speichern.Wie speichere ich einen Bericht direkt in .doc?

Hier ist mein Code bis jetzt

  SaveFileDialog saveFileDialog = new SaveFileDialog(); 
      saveFileDialog.InitialDirectory = @"C:\temp"; 
      saveFileDialog.RestoreDirectory = true; 
      saveFileDialog.Title = "Browse Text Files"; 
      saveFileDialog.DefaultExt = "doc"; 
      saveFileDialog.Filter = "Word Doc (*.doc)|*.doc|PDF (*.pdf)| *.pdf"; 
      saveFileDialog.CheckFileExists = false; 
      saveFileDialog.CheckPathExists = true; 

      Warning[] warnings; 
      string[] streams; 
      string mimeType; 
      string encoding; 
      string extension; 

      byte[] bytes = reportTest.LocalReport.Render("Word", null, out mimeType, out encoding, out extension, out streams, out warnings); 

      //if (saveFileDialog.ShowDialog() == DialogResult.OK) 
      //{ 
       saveFileDialog.FileName = "123.doc"; 
       var filename = saveFileDialog.FileName; 
       System.IO.FileStream file = new FileStream(filename, FileMode.Create); 
       file.Write(bytes, 0, bytes.Length); 
       file.Close(); 
      //} 

Kann mir jemand helfen, wie Sie die Datei direkt auf c speichern: \ temp \ 123.doc (ohne Dialog im Explorer).

Vielen Dank!

Antwort

0

Sie können dies direkt speichern mit Pfad und Dateiname

filename="PATH" + "test.doc"; 
System.IO.FileStream file = new FileStream(filename, FileMode.Create); 
+0

Perfect! Vielen Dank! – Jocelyn

+1

Vergessen Sie nicht, den Stream zu entsorgen oder Sie werden eine schlechte Zeit haben - Sie können den Stream in ein 'using' einbinden, um das zu tun oder einfach die Hilfsmethode' System.IO.File.WriteAllBytes (path, bytes) '' zu verwenden Quelle: https://msdn.microsoft.com/en-us/library/system.io.file.writeallbytes(v=vs.110).aspx –

Verwandte Themen