Directory.GetFilesメソッドの使い方

Aというフォルダに01PDF,02PDF,03PDFと3つのPDFがあり、configファイルに各ファイルのパスを設定して、「PDFページ範囲の抽出」を使って各1ページ目のみ取得したいです。

これまでは、以前このフォーラムで教えていただいた書き方(「PDFページ範囲の抽出」の中に「代入」を置き「PDF=Directory.GetFiles(“C:¥Users¥A”,“*.pdf”)」と書いていました)で上手くいっていたのですが、場所が変わる可能性もあるということでconfigファイルで管理することになりました。

configファイルの設定値はキーが「PDF読込ファイルパス」、値が「C:¥Users¥A","*.pdf」です。

初期設定に代入を置き「PDF読込ファイルパス=ConfigSettings(“PDF読込ファイルパス”)」と設定。「PDFページ範囲の抽出」の中に「代入」を置き「PDF=Directory.GetFiles(PDF読み込みファイルパス)」としデバッグすると、変数「PDFファイルパス」の値が「“C:¥Users¥A¥”,¥"*.pdf"」、変数「PDF」の値はnullとなっています。

¥マークが増えてることに原因があるのでしょうが、どうやって取ってよいかわかりません。

どなたか教えていただけると助かります。
よろしくお願いいたします。

Aというフォルダに01PDF,02PDF,03PDFと3つのPDFがあり、configファイルに各ファイルのパスを設定して、「PDFページ範囲の抽出」を使って各1ページ目のみ取得したいです。

これまでは、以前このフォーラムで教えていただいた書き方(「PDFページ範囲の抽出」の中に「代入」を置き「PDF=Directory.GetFiles(“C:¥Users¥A”,“*.pdf”)」と書いていました)で上手くいっていたのですが、場所が変わる可能性もあるということでconfigファイルで管理することになりました。

configファイルの設定値はキーが「PDF読込ファイルパス」、値が「C:¥Users¥A","*.pdf」です。

初期設定に代入を置き「PDF読込ファイルパス=ConfigSettings(“PDF読込ファイルパス”)」と設定。「PDFページ範囲の抽出」の中に「代入」を置き「PDF=Directory.GetFiles(PDF読み込みファイルパス)」としデバッグすると、変数「PDFファイルパス」の値が「“C:¥Users¥A¥”,¥"*.pdf"」、変数「PDF」の値はnullとなっています。

¥マークが増えてることに原因があるのでしょうが、どうやって取ってよいかわかりません。

どなたか教えていただけると助かります。
よろしくお願いいたします。

Directory.GetFilesメソッドの使い方のご認識が正しくないようですね。

このメソッドで、ご希望の処理を行いたい場合には2つの引数が必要になります。

Directory.GetFiles(path, searchPattern)
  • path
    • ここに、検索先のフォルダを格納した変数を指定します
  • searchPattern
    • ここに、検索条件を格納した変数を指定します

いま @rkym123456 さんが設定されているものは、この2つをまとめて1つの変数に入れている状態なので、ご想定の挙動にならない状態になっています。
ですので、次のようにしていただければと思います。

  • まず、検索先のフォルダのパス と、検索条件 をそれぞれ別の設定項目として設けて下さい
  • そしてそれぞれの項目を、変数に格納して下さい
  • 格納された変数を、先に提示したメソッドの使用方法に則って、メソッドの引数に指定して下さい

デバッグモードで実行したときに表示されるローカルペインでは、エスケープが必要な文字についてはバックスラッシュが付加されて表示される仕様になっています。
今回のケースでは、\ および " が該当するかと思いますが、これらはローカルペインではそれぞれ \\, \" と表示されます。
あくまでローカルペインのなかでの表示の問題で、実際に変数に格納されている値には影響していません。したがって、今回の問題の原因ではないと思われます。

1 Like

ご回答ありがとうございました。

教えていただいた通りに変数を分けて入れたところ上手くいきました。
また、デバッグモードでのローカルペインの見方も解説してくださり、またひとつ勉強になりました。
色々教えてくださり、ありがとうございました。

上手く動作したとのことで何よりです。メソッドは、調べれば使い方もたくさん出てきますので、慣れてきたらご自身でも調べてみることをおすすめします。


宜しければ、解決のきっかけとなった投稿を「解決策」としてマークしていただきますようお願いします。
今後この投稿を見つけた方が、解決の方法をスムーズに見つけられるようにご協力下さい。

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.