2013-03-10 88 views
0

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

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

阿姆里特这应该是一个简单的任务,添加你想要保存到文件夹的名称与你如何保存到桌面的方式相同,只需用实际路径'c:\ somefilepath \ Invoice'替换它即可。# – MethodMan 2013-03-10 12:01:12

回答

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)); 
+0

嗯,我会使用'Path.Combine'而不是手动进行连接。 – 2013-03-10 12:23:24

+0

@CodyGray With'Path.Combine'我不得不使用'ord +“。pdf”'作为第三个参数,但我想这也是可以的。 – dasblinkenlight 2013-03-10 12:25:57

1

替换 “\\” 与 “\发票\” +奥德+ “.PDF”

0

如果该文件夹不存在n您需要创建的文件夹,然后写

使用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)); 
0

你也可以使用Save File Dialog并用路径替换FileStream的第一个参数保存文件对话框返回。

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)); 
相关问题