0

テキストボックスがあります。ファイルをそこにドラッグしてボタンをクリックすると、テキスト ボックスのファイルが別のフォルダに移動します。しかし、ファイルをテキスト ボックスにドラッグしてボタンをクリックするのを忘れると、プログラムは sourceFileName が存在しないという Argument Exception をスローします。

private void button_Click(object sender, EventArgs e)
{
    // here occurs Argument Exception Because there isn't any TextBox.Text
    File.Copy(TextBox.Text, "C:/");

    if (String.IsNullOrEmpty(TextBox.Text))
        {
            MessageBox.Show("Please drag a file to the Tex Box!");
        }
}

不足しているソース ファイルの引数例外をキャッチするにはどうすればよいですか?

4

6 に答える 6

2

しかし、ファイルをテキストボックスにドラッグするのを忘れた場合

次に、コードでエラー チェックを行う必要があります。UI でファイルを指定せずにボタンをクリックできる場合、コードはファイル名が存在すると想定できません。(現在はあります。)

ファイル操作を実行する前に、条件を確認してください。

if (!string.IsNullOrEmpty(TextBox.Text))
    File.Copy(TextBox.Text, "C:/");

さらに一歩進んで、値が実際に有効なファイルであるかどうかを確認することもできます。

if (! string.IsNullOrEmpty(TextBox.Text))
    if (File.Exists(TextBox.Text))
        File.Copy(TextBox.Text, "C:/");

elseユーザーに適切なメッセージを表示するための条件をいくつか追加します。逆に、テキスト ボックスに値が入力されるまで、UI でボタンを無効にすることができます。または、両方のアプローチを取ることもできます。

(余談TextBoxですが、変数の名前としては特に適切ではありません。これは実際のクラスの名前であり、おそらく変数自体と同じクラスです。クラス名と変数インスタンス名を区別することをお勧めします。特に、そのクラスで静的メソッドを使用することはありません。)

于 2013-10-25T17:47:08.827 に答える
0
 if (File.Exists(TextBox.Text.Trim()))
  {
    File.Copy(TextBox.Text, "C:/");
  }
else
  {
    MessageBox.Show("Please drag a file to the Tex Box!");
    return;
  }
于 2013-10-25T17:53:02.927 に答える