質問: C#のwindows formでユーザーにテキストファイルのパスを入力してもらい、 テキストファイルをコピーするプログラムを作りたいです。 ファイルコピーをする上で入力したファイルが存在しないなどの起こり得るエラーはif文で書きたいと思っています。 そこで質問なのですが、 入力された文字がテキストファイルであるかどうかを判定する関数などはあるのでしょうか? 現在開発環境がないので、ソースコードを書くことができません。 回答のほど、よろしくお願いします。 ///追記 EndsWithを使ってすることは可能でしょうか? if (入力された文字を格納した変数.EndsWith(".txt")) { ///trueの場合の処理 }
回答: ファイル名の拡張子がtxtのものだけが対象で良いのであれば、追記にご記載の方法で良いかと思います。 ※大文字の".TXT"なども対象にしたほうが良いかと思いますので、EndsWithの2番目の引数に `StringComparison.CurrentCultureIgnoreCase` などを指定したほうがいいです。 拡張子が何であっても中身がテキストのファイルをすべて対象とするということであれば、実際にファイルを開いてみて読めるかどうか確認する必要があるかと思います。 下記リンク先の「ファイルはテキストファイルであるかどうか」のほうをご参照ください。 +C#+バイナリ・テキストファイルの判断 ※追記 上記リンク先の内容についての指摘がありますので、コメント欄もあわせてご確認ください。