0

我希望你能帮我解决这个问题,我正在尝试从图表生成图像,首先我使用:

public void generateDIR()
{
    DocumentsDIR = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    bool flag=true;
    int counter = 0;
    while (flag)
    {
        counter++;
        Console.WriteLine(counter);
        string dateforDir = "_"+DateTime.Now.Month.ToString() + "_" + DateTime.Now.DayOfWeek.ToString() + "_"+ DateTime.Now.Year.ToString();
        ReportDIR = DocumentsDIR + "/SisDatCal_Reports/Report_"+counter.ToString()+dateforDir+ "/";
        bool exists = System.IO.Directory.Exists(ReportDIR);
        if (!exists)
        {
            ReportPlotsDIR = ReportDIR + "Plots/";
            System.IO.Directory.CreateDirectory(ReportDIR);
            System.IO.Directory.CreateDirectory(ReportPlotsDIR);
            flag = false;
        }     
     }
}

获取生成的目录“ReportPlotsDir”,我想在其中保存图像,然后我使用下一个代码生成图表“chartVolts”的图像:

String ChartVName = ReportPlotsDIR + "IMG_ChartVolts.png";
chartVolts.SaveImage(ChartVName, System.Drawing.Imaging.ImageFormat.Png);

这工作正常,在程序执行期间没有显示错误,但是,当我转到我的文件夹并搜索“IMG_ChartVolts.png”时,它保存在解决方案的“Bin\Debug”文件夹中,而不是在“报告绘图目录”。知道为什么会这样吗?

4

2 回答 2

1

放一个调试点,看看 的值ReportDIR,你会注意到你需要使用反斜杠而不是正斜杠,但是最好使用 Path.Combine 像:

ReportDIR = Path.Combine(DocumentsDIR, "SisDatCal_Reports\\Report_" + counter + dateforDir + "\\");

除此之外,对于格式化日期,您可以使用:

string dateforDir = DateTime.Now.ToString("_MM_dddd_yyyy", System.Globalization.CultureInfo.InvariantCulture);
于 2015-11-10T14:13:44.817 回答
0

谢谢大家,执行顺序有错误,路径生成没有,直到我调试正确才看到。如果有人需要它,问题中的代码发布完美。

于 2015-11-10T14:37:37.630 回答