繁体   English   中英

将文件保存在特定的文件夹中

[英]Save file in specific folder

在我的Windows窗体项目中,我试图将生成的文件保存到名为“发票”的文件夹中。 我可以保存到桌面,但是如何保存到子文件夹? 我知道这是非常简单的解决方案,但是进行了一些研究,但解决方案没有运气。

PdfWriter writer = PdfWriter.GetInstance(doc, 
    new FileStream(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\" + ord + ".pdf",
    FileMode.Create));

您可以使用添加文件名的相同方法来添加文件夹的名称:

PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\Invoice\\" + ord + ".pdf", FileMode.Create));
//                                                                                                                           ^^^^^^^^^^^^

您还可以使用string.Format组成路径,如下所示:

var pathToPdf = string.Format(
    "{0}\\{1}\\{2}.pdf"
,   Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
,   "Invoice"
,   ord
);
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(pathToPdf, FileMode.Create));

将“ \\\\”替换为“ \\ Invoice \\” + ord +“ .pdf”

如果该文件夹不存在,则需要创建该文件夹,然后编写

使用Directory.CreateDirectory

Directory.CreateDirectory Method (String)

Creates all directories and subdirectories as specified by path.

例:

string fileName = @"C:\Users\SomeUser\My Documents\Foo\Bar\Baz\text1.txt";
Directory.CreateDirectory(Path.GetDirectoryName(fileName));

using (FileStream fs = new FileStream(fileName, FileMode.Create))
{
    // ...
}

完成后,您可以像这样写入文件夹

PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\Invoice\\" + ord + ".pdf", FileMode.Create));

您还可以使用“ 保存文件对话框” ,并将“ 文件流”的第一个参数替换为“保存文件对话框”返回的路径。

我不喜欢将所有内容都放在一行中...这就是我要做的

string myFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "MyFolder");
string filePath = Path.Combine(myFolder, ord + ".pdf");
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(filePath, FileMode.Create));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM