2013-03-10 134 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)); 
相關問題