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

时间:2013-03-10 11:55:56

标签: c# winforms file-io

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

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

5 个答案:

答案 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

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