C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.102204 の関連記事表示

<< 0 >>
■102204  ダイアログ選択時のエラー処理
□投稿者/ tom -(2023/07/20(Thu) 15:39:18)

    分類:[C#] 

    Windowsフォームアプリケーション .NET Framework c#

    ダイアログでフォルダを開きCSVファイルを選択するのですが
    元々開いたままでファイルを選択するとエラーになってしまします
    これをメッセージボックスで警告したいのですが
    どの様にすればいいでしょうか
    試してみたんですがうまくいかないので
    宜しくお願い致します


    private void btnOpen_Click_1(object sender, EventArgs e)
    {
    OpenFileDialog openFileDialog = new OpenFileDialog();
    openFileDialog.Filter = "CSV Files (*.csv)|*.csv";
    if (openFileDialog.ShowDialog() == DialogResult.OK)
    {
    string filePath = openFileDialog.FileName;

    /*
    //---------------------------------------------

    if (IsFileInUse(filePath))
    {
    MessageBox.Show("選択されたファイルは開いたままです。");
    }
    else
    {
    ReadCSV(filePath);
    }

    //---------------------------------------------
    */

    ReadCSV(filePath);
    }
    }

親記事 /過去ログ178より / 関連記事表示
削除チェック/

■102206  Re[1]: ダイアログ選択時のエラー処理
□投稿者/ radian -(2023/07/20(Thu) 15:48:15)
記事No.102204 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102205  Re[1]: ダイアログ選択時のエラー処理
□投稿者/ WebSurfer -(2023/07/20(Thu) 15:45:59)
    No102204 (tom さん) に返信

    > if (IsFileInUse(filePath))
    > {
    > MessageBox.Show("選択されたファイルは開いたままです。");

    IsFileInUse と言うのは何でしょう?

    自作メソッドで、これが true を返すと「選択されたファイルは開いたまま」と判定されると
    いうことで、このメソッドの実装方法を教えてほしいということですか?
記事No.102204 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102207  Re[1]: ダイアログ選択時のエラー処理
□投稿者/ 魔界の仮面弁士 -(2023/07/20(Thu) 17:11:35)
    2023/07/20(Thu) 17:19:24 編集(投稿者)

    No102204 (tom さん) に返信
    > 元々開いたままでファイルを選択するとエラーになってしまします
    > これをメッセージボックスで警告したいのですが
    > どの様にすればいいでしょうか

    これで如何でしょう。
    ReadCSV メソッドや IsFileInUse メソッドは作成済みという前提です。

    // 案1
    var openFileDialog = new OpenFileDialog { Filter = "CSV Files (*.csv)|*.csv" };
    openFileDialog.FileOk += (object o, CancelEventArgs args) =>
    {
      if (args.Cancel = IsFileInUse(openFileDialog.FileName))
      {
        MessageBox.Show("選択されたファイルは開いたままです。");
      }
    };
    if (openFileDialog.ShowDialog() == DialogResult.OK)
    {
      ReadCSV(openFileDialog.FileName);
    }


    // 案2
    var openFileDialog = new OpenFileDialog { Filter = "CSV Files (*.csv)|*.csv" };
    openFileDialog.FileOk += (object o, CancelEventArgs args) =>
    {
      if (args.Cancel = IsFileInUse(openFileDialog.FileName))
      {
        MessageBox.Show("選択されたファイルは開いたままです。");
      }
      else
      {
        ReadCSV(openFileDialog.FileName);
      }

    };
    openFileDialog.ShowDialog();
記事No.102204 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102208  Re[1]: ダイアログ選択時のエラー処理
□投稿者/ WebSurfer -(2023/07/20(Thu) 22:11:20)
    No102204 (tom さん) に返信

    IsFileInUse と言うのが自作メソッドで、これが true を返すと「選択されたファイル
    は開いたまま」と判定されるということで、このメソッドの実装方法を教えてほしいと
    いうことであれば。

    「c# ファイル使用中チェック」などをキーワードにググればいろいろ参考になりそうな
    記事がヒットするはずです。例えば下記:

    C#でファイルがロック中であるかを確認する
    https://zenn.dev/kn64872/articles/d263d5d0d5c3c5
記事No.102204 のレス /過去ログ178より / 関連記事表示
削除チェック/

■102246  Re[2]: ダイアログ選択時のエラー処理
□投稿者/ WebSurfer -(2023/08/02(Wed) 11:43:23)
    質問者さん、無言ですが、多々回答がされているのでそれらに対するフィードバックを
    返してください。

    役に立った/立たなかったぐらいはすぐに返せるのでは? 役に立たなかったならどこが
    ダメだったかを書くとより期待に近い回答が出てくるかも。
記事No.102204 のレス /過去ログ178より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -