質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

1回答

4800閲覧

ActiveReportsを用いたPDFファイル出力でフォルダアクセス拒否される

YUK_3

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2021/09/08 08:38

ActiveReportsの機能を用いてC#でPDFファイル出力をしたいのですが、いざエクスポートする段階でアクセス拒否されてしまいます。
アクセス先のパスの設定(書き込みできるかどうか等)見てみましたが解決しませんので、解決策あれば教えていただきたいです。

//レポート生成 var sectionDocument = report.Document; report.Run(); //PDFに保管 GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport exp = new GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport(); string path = @"C:\PDF"; Directory.CreateDirectory(path); //PDF出力          //ここでエラーが来ます exp.Export(sectionDocument, path);
System.UnauthorizedAccessException: 'パス 'C:\PDF' へのアクセスが拒否されました。

visualstudio2019
ActiveReports12.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YAmaGNZ

2021/09/08 08:45

なんというファイル名で出力しようとしていますか?
dodox86

2021/09/08 09:02

C:ドライブのルート直下に保存しようとしてませんか?
YAmaGNZ

2021/09/08 10:18

提示されているソースを分かりやすく書くと Directory.CreateDirectory(@"C:\PDF"); //PDF出力 exp.Export(sectionDocument, @"C:\PDF"); となるわけですがパスの指定はあっていますか?
YUK_3

2021/09/09 00:41

返信いただきありがとうございます。 お三方に指摘されていたことが問題でした。 SurferOnWww様のリンク通りに実行して期待する結果が得られました。
退会済みユーザー

退会済みユーザー

2021/09/09 00:46

パスの指定が間違っていたということのようですね。問題は解決したとのことですので、ご自分で回答欄にどのように解決したのかを書いてこのスレッドはクローズ願います。
guest

回答1

0

自己解決

質問への追記・修正の依頼にて解決。
パスの指定方法が誤りであったので修正。
参考サイト↓
リンク内容

//レポート生成 var sectionDocument = report.Document; report.Run(); //PDFに保管 GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport exp = new GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport(); //PDF出力 exp.Export(sectionDocument, Application.StartupPath + "\pdf");

投稿2021/09/09 00:53

YUK_3

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2021/09/09 00:59

質問者さんが意図したPATHとは違って間違っていた、という意味では原因のひとつですが、「アクセス拒否」自体のエラーはプログラム実行時の権限ではそのPATHにファイルを書き込めないから、です。C:\ 直下はそうで、「Application.StartupPath」が例えばC:\Program Filesの下であったりしたらそれもNGのはずです。
YAmaGNZ

2021/09/09 01:03

本当に理解されていますか? 第2引数は「メインPDFファイルを保存するファイル名とパス」と書かれています。 フォルダ名ではなくパスを含めたファイル名を指定するのではないですか? 回答で書かれた内容だとEXEのあるフォルダに「pdf」って名前のファイルが作成されるのでは?
YAmaGNZ

2021/09/09 01:06

実際に試せないので正しくないかもしれませんが、質問のソースだと 「C:\pdf」というフォルダを作成した後に「C:\pdf」というファイルを作成しようとしてUnauthorizedAccessExceptionが発生したのではないかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問