【问题标题】:Difficulty saving a template while appending strings附加字符串时难以保存模板
【发布时间】:2014-10-29 15:00:44
【问题描述】:

我正在尝试加载一个 Excel 模板,然后在文件名后附加机器名称和日期时间来保存它。我遇到的问题是最终产品最终如下:

“模板.xlsx_MachineName_DateTime.xlsx”

我似乎找不到摆脱第一个 .xlsx 的方法。我首先打开一个文件对话框并将路径保存为字符串。

OpenFileDialog fileDialog = new OpenFileDialog();
                string fileName = fileDialog.FileName;

然后我使用 FileStream 来保存文件。

                using (FileStream outputfile = new FileStream(fileName + machineInfo.HostName + DateTime.Now.ToString("yyyy-MM-dd") + ".xlsx", FileMode.Create))
                {
                    package.SaveAs(outputfile);
                }

有没有人遇到过这种情况?我觉得应该有一种使用 path.combine 的方法,但什么也想不出来。理想情况下,我希望结果是“Template_MachineName_DateTime.xlsx”。

【问题讨论】:

    标签: c# excel file-io


    【解决方案1】:

    使用 System.IO.Path 类获取文件名/路径的特定部分。

     string fileName = fileDialog.FileName;
     string newFilename = System.IO.Path.GetFileNameWithoutExtension(fileName) + 
               machineInfo.HostName + DateTime.Now.ToString("yyyy-MM-dd") + ".xlsx"
    

    或者,如果您想要适用于任何文件扩展名(不仅仅是 .xlsx)的东西:

     string fileName = fileDialog.FileName;
     string newFilename = System.IO.Path.GetFileNameWithoutExtension(fileName) + 
             machineInfo.HostName + DateTime.Now.ToString("yyyy-MM-dd") + 
             System.IO.Path.GetExtension(fileName);
    

    Path 类在处理文件和目录时有很多非常有用的方法。

    【讨论】:

    • 这正是我想要的。谢谢。
    【解决方案2】:

    我真的建议阅读 MSDNs String Methods 文档。

    string filename = fileDialog.FileName;
    string newFilename;
    int fileExtensionIndex = filename.LastIndexOf(".xlsx")
    
    newFilename = filename.Insert(fileExtensionIndex
                                 ,"_" + machineInfo.HostName + "_" + DateTime.Now.ToString("yyyy-MM-dd"))
    
    using (FileStream outputfile = new FileStream(newFileName, FileMode.Create))
    {
        package.SaveAs(outputfile);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-14
      • 2016-03-31
      • 2022-01-03
      • 2015-11-06
      • 1970-01-01
      • 1970-01-01
      • 2020-10-31
      • 2019-03-24
      相关资源
      最近更新 更多