0

Windows フォーム プロジェクトで、生成されたファイルを「請求書」というフォルダに保存しようとしています。デスクトップには保存できますが、サブフォルダーに保存するにはどうすればよいですか? これが非常に簡単な修正であることは知っていますが、いくつかの調査を行いましたが、解決策はありませんでした。

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

すべてを 1 行にまとめるのは好きではありません...これが私のやりたいことです

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 に答える