該当業界タイプついてあるExcelファイルがあり、送付リストの業社の業界タイプを参照し、そのファイルをstudioに添付して、該当業社に送付することですが、送付リストに1つ業社につき2つ業界タイプついてあるものがありながら、1つExcelファイルに二つ業界タイプについてあるがあります。
例:送付リスト:ABC商事という会社に、業界タイプは商社&商流
フォルダにあるExcelファイルは、商社.xlsx
この場合ですと、ABC商事の業界タイプは商社&商流で、Excelファイルは商社&商流.xlsxを添付して送付するという前提ですが、商社&商流.xlsxが存在していないので、送信しないことにする必要。これに対し、商社&商流.xlsxが存在していないのに、商社.xlsxを添付して、該当業社に送信してしまうことが発生。
特に商社.xlsxのファイルには「MM商社.xlsx」というようなファイル名で作られているものが多くあるので、条件分析で送付リストの業界タイプとExcelファイルの名前を完全一致指定できないです。
説明が下手ですが、何かいい方法があれば、教えていただければありがたいです。
よろしくお願いいたします。
完全一致でファイルを送信したいけど、部分一致するファイルが送られてしまうということであれば、以下のコードではいかがでしょうか。
If System.IO.Path.GetFileNameWithoutExtension(ファイルパス).Equals(期待するファイル名, StringComparison.InvariantCultureIgnoreCase)
各部分の詳細
- System.IO.Path.GetFileNameWithoutExtension(ファイルパス)
役割: ファイルパスから、拡張子を除いたファイル名を取得します。
例:
入力: “C:\Users\Documents\sample.xlsx”
出力: “sample” - .Equals(期待するファイル名, StringComparison.InvariantCultureIgnoreCase)
役割: 取得したファイル名と「期待するファイル名」を比較し、一致するかを判定します。
引数の詳細:
期待するファイル名: 比較対象となる文字列。
StringComparison.InvariantCultureIgnoreCase:
大小文字を区別しない比較を行う。
文化(カルチャ)に依存しない(たとえば、ロケール設定が異なる環境でも安定して動作)。
例:
“sample”.Equals(“SAMPLE”, StringComparison.InvariantCultureIgnoreCase)
⇒ True (大小文字を区別しない)
- If条件文
このコード全体はIf文に含まれており、条件がTrueの場合にその後の処理を実行します。
ご丁寧に教えていただきありがとうございます。
返信が遅くなり、申し訳ございませんでした。
教えていただきました方法で試させていただきます。
ありがとうございました。