C#でログファイルを解析するソフトを作成しています。
C#
1private void button1_Click(object sender, EventArgs e) 2 { 3 4 CommonOpenFileDialog commonOpenFileDialog = new CommonOpenFileDialog(); 5 6 //ダイアログのタイトル 7 commonOpenFileDialog.Title = "フォルダ選択"; 8 9 //デフォルトのフォルダ 10 commonOpenFileDialog.InitialDirectory = @"C:\Users"; 11 12 //フォルダ選択モード 13 commonOpenFileDialog.IsFolderPicker = true; 14 15 if (commonOpenFileDialog.ShowDialog() == CommonFileDialogResult.Ok) 16 { 17 label1.Text = commonOpenFileDialog.FileName + " を選択中。"; 18 } 19 }
C#
1private int GetLogfiles(string logPath,out List<string> Logfiles) 2 { 3 Logfiles = new List<string>(); 4 logPath = "*log"; 5 6 if (!Directory.Exists(logPath)) 7 { 8 LogWriteLine("指定ログフォルダが有りません\n\r"); 9 } 10 11 // 最後が「\」かチェック 12 if (!logPath.EndsWith(@"\")) 13 { 14 // 違う場合は「\」追加 15 logPath += @"\"; 16 } 17 return 0; 18 }
上のcomoonOpenFileDialogを開いた後commonOpenFileDialogで開いたファイルがlogファイルかどうか確認したいのですが、試しに下のコードのように書いてもうまく動きませんでした。
どのような方法があるでしょうか。。?
また、このコードのまま修正すれば動きそうでしたら教えていただけますでしょうか。
メソッド:GetLogfiles() は 何を食わすと何をして何が返ってくるんですか?

開発環境を質問欄を編集して追記してください。(例: Windows 10 の Visual Studio 2022 で Windows Forms アプリをターゲットフレームワーク .NET Framework 4.8 で作っています・・・とか)

> 試しに下のコードのように書いてもうまく動きませんでした。
「下のコード」って何ですか?
「うまく動きませんでした」では分かりません。
わかりずらい書き方で申し訳ありません。
開発環境はwindows11のVisual Studio 2022でwindows Formアプリケーションを .NET Framework 4.8で作っています。
CommonOpenFileDialogで選択したフォルダに「*.log」と拡張子が「log」となっているファイルがあるか、ある場合はファイルを列挙する。
ということをしたいのでしょうか?
選択したフォルダに拡張子が「log」となっているファイルがあるか確認したい、ということです。
呈示されたコードはそんなことしていませんよ?
out List<string> Logfiles
と列挙した結果を返そうとしているように見えるのですが「ファイルがあるか判断する」だけでいいのですか?
やりたいことは「とあるディレクトリにある~.logを列挙する」じゃないんですか?
それとも「とあるディレクトリに少なくともひとつ~.logがあるか否かを判定する」ですか?
> commonOpenFileDialogで開いたファイルがlogファイルかどうか確認したいのですが
あれ? ユーザが選択するのは(ファイルじゃなく)フォルダですよね? おかしくない?
ファイルじゃなくてフォルダです。失礼しました。
> やりたいことは「とあるディレクトリにある~.logを列挙する」じゃないんですか?
それとも「とあるディレクトリに少なくともひとつ~.logがあるか否かを判定する」ですか?
これ↑については?
ディレクトリにあるlogファイルを列挙したいです。
つまり質問が変わった? ともかく回答をご覧ください。

回答2件
あなたの回答
tips
プレビュー