在我的Windows窗体项目中,我试图将生成的文件保存到名为“Invoice”的文件夹中。我可以保存到桌面,但如何将其保存到子文件夹? 我知道这是一个非常简单的修复方法,但做了一些研究,但没有运气解决方案。
PdfWriter writer = PdfWriter.GetInstance(doc,
new FileStream(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\" + ord + ".pdf",
FileMode.Create));
答案 0 :(得分:3)
您可以使用与添加文件名称相同的方式添加文件夹的名称:
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));
答案 1 :(得分:1)
将“\\”替换为“\ Invoice \”+ ord +“。pdf”
答案 2 :(得分:0)
如果该文件夹不存在,则需要创建该文件夹,然后编写
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));
答案 3 :(得分:0)
您也可以使用Save File Dialog并将FileStream的第一个参数替换为Save File Dialog返回的路径。
答案 4 :(得分: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));