2017-11-12 8 views
0

과 다른 폴더에 xml 파일을 저장하는 방법 차트 데이터가 포함 된 XML 파일을 특정 폴더에 저장하는 방법이 있는지 알고 싶었습니다. 저는 SAVED 버튼을 가지고 있습니다.이 버튼은 차트의 현재 상태에 대한 png 또는 jpeg 파일을 저장하고 나중에로드하기 위해이 차트의 xml 파일을 저장합니다. 문제는 해당 파일이C# app/bin/debug/

graph.SaveImage(save.FileName, System.Windows.Forms.DataVisualization.Charting.ChartImageFormat.Png); 
graph.Serializer.Save(txtNom.Text + "_" + txtPrenom.Text + ".xml"); 
+0

경로를 지정하여 다른 폴더에 저장할 수 있어야합니다. 'chart1.SaveImage ("C : \\ myfolder \\ mychart.png", ChartImageFormat.Png);' – derloopkat

답변

0

당신이 "저장"방법에 당신에 의해 지정된 경로를 제공 봤어/myXMLfile.xml 응용 프로그램/빈/디버그에 기본적으로가는 것입니다?

를 들어
graph.Serializer.Save(C:\\txtNom.Text + "_" + txtPrenom.Text + ".xml");  
0

나는

graph.Serializer.Save(save.FileName+".xml"); 

과 노력하지만 난 그래서 난 그냥 단지 했나 이름을 얻기 위해 문자열 방법을 사용 myFile.png.xml 같은 추한 뭔가있어 확장명없이 .png 파일을 만든 다음 xml 확장명을 추가합니다. 이 같은 것을줍니다.

graph.Serializer.Save(save.FileName.Substring(0,save.FileName.IndexOf('.')) + ".xml"); 
0

다음은 공통 기능을 사용하여 각 파일에 대해 사용자에게 메시지를 보내는 방법입니다. 당신은 당신의 폼의 코드 숨김 섹션에서이 라이브러리에 대한 참조를 추가해야합니다

private void btnSave_Click(object sender, EventArgs e) 
    { 
     string imageFilePath = null; 
     string dataFilePath = null; 
     ImageFormat format = System.Drawing.Imaging.ImageFormat.Png; 

     try 
     { 
      // Image data 
      imageFilePath = promptForFilePath("Save Chart image", "PNG Files (*.png)|*.png|JPEG Files (*.jpg,*.jpeg)|*.jpg;*.jpeg|BMP Files (*.bmp)|*.bmp|All Files (*.*)|*.*"); 

      if (!String.IsNullOrWhiteSpace(imageFilePath)) 
      { 
       switch (Path.GetExtension(imageFilePath).Replace(".", "").ToLower()) 
       { 
        case "jpeg": 
        case "jpg": 
           format = ImageFormat.Jpeg; 
         break; 
        case "png": format = ImageFormat.Png; 
         break; 
        case "bmp": format = ImageFormat.Bmp; 
         break; 
       } 

       this.graph.SaveImage(imageFilePath, format); 
      } 

      // XML data 
      dataFilePath = promptForFilePath("Save Chart data","XML Files (*.xml)|*.xml|All Files (*.*)|*.*"); 

      if (!String.IsNullOrWhiteSpace(dataFilePath)) this.graph.Serializer.Save(dataFilePath); 

     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Error: " + ex.Message, "btnSave_Click Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 
     finally 
     { 

     } 
    } 

    string promptForFilePath(string title = "Save File", string fileFilter = "All Files (*.*)|*.*") 
    { 
     string result = null; 
     SaveFileDialog saveFileDialog = null; 

     try 
     { 
      saveFileDialog = new SaveFileDialog(); 
      saveFileDialog.Title = title; 
      saveFileDialog.Filter = fileFilter; 

      if(saveFileDialog.ShowDialog(this) == System.Windows.Forms.DialogResult.OK) 
      { 
       result = saveFileDialog.FileName; 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Error: " + ex.Message, "saveChartData Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 
     finally 
     { 
      if (saveFileDialog != null) 
      { 
       saveFileDialog.Dispose(); 
       saveFileDialog = null; 
      } 
     } 

     return result; 
    } 
:

using System.Drawing.Imaging; 
using System.IO; 

그런 다음 저장 버튼을 전체 파일 경로에 대한 사용자에게 메시지를 표시하기위한 공통 기능에 대한 이벤트 처리기를 추가