フォルダーの中に複数のExcelファイルが存在し、Excelファイルを上から順に開いていき、処理が終わったら閉じるというプログラムを作っています。
フォルダーもいくつか存在しています。
(例:千葉フォルダー→Excelファイルが3つ、東京フォルダー→Excelファイルが2つ)
繰り返しでフォルダー内のファイルを順番に処理していき、Excelファイルが存在しないフォルダーがあった場合メールを送信したいと思っています。
エクセルファイルを開き、順に処理していくまでは組めたのですが、ファイルがなかった時の処理(分岐方法)がわかりません。
ご教示のほどよろしくお願いいたします。
@Y.H さん
とあるフォルダに、ファイルがあるか判断について、下記のソースをご参照ください。
Directory.GetFiles(“C:\”, “*.xlsx”, SearchOption.TopDirectoryOnly).Count > 0
1 Like
指定フォルダの下にあるフォルダ一覧を取得し、その配列指定でエクセルファイルの一覧を取得し、ファイル一覧が取得出来たら出来ないかで判断出来ますね。
@wusiyangjia さん、 @HANACCHI さんも書かれていますが、 下記のロジックで実装できるかと思いますのでお試しいただけませんでしょうか。
- 対象フォルダに含まれるサブフォルダの一覧を取得する
- サブフォルダの一覧をひとつずつループさせる
- サブフォルダに含まれるExcelファイルの一覧を取得する
- Excelファイルの一覧の件数がゼロではない(
n > 0
)か否かを判定する- ゼロではない ならば通常の処理を行う
- ゼロである ならば、メールを送信する
他の方々が適切な回答をしているようなので、老婆心ながらの確認です。
フォルダが「存在しない」可能性は考慮しなくてよいでしょうか?
「千葉」フォルダの中身が0件ではなく「千葉」フォルダが存在しなかった場合にも「千葉フォルダがありません!」というメールが必要ということはないでしょうか?
そうであれば、フォルダ一覧マスタのようなものを持っておいて、そのマスタからフォルダパスを取り出して、フォルダがあるかどうか、フォルダの中身が空かどうかを確認していく必要があると思われます。
フォルダがないということを考慮しなくてよいなら、他の方が示しているようなやり方で問題ないかと。
ありがとうございます!無事解決することができました!
1 Like
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.