0

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

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

5 回答 5

4

您可以像添加文件名一样添加文件夹名称:

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));
于 2013-03-10T11:58:53.710 回答
1

将 "\\" 替换为 "\Invoice\" + ord + ".pdf"

于 2013-03-10T11:59:41.920 回答
0

如果该文件夹不存在,那么您需要创建该文件夹,然后写入

使用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));
于 2013-03-10T12:00:48.917 回答
0

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

于 2013-03-10T12:01:42.020 回答
0

我不喜欢把所有东西都放在一条线上……这就是我要做的

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));
于 2013-03-10T12:04:11.957 回答