質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.40%

  • C#

    9447questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

やさしいC# 第2版にて、2章の画像表示を試していますが、表示されません。

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 289

Shibami

score 1

前提・実現したいこと

初心者です。
やさしいC# 第2版(高橋 麻奈 著)を読みながら、C#を勉強しようとしています。
第2章の2.3の画像を表示させるレッスンで、以下のエラーが発生しました。
どうすれば、画像が表示されるのでしょうか?
ご教示、よろしくお願いします。

発生している問題・エラーメッセージ

コンソール?上で表示されているエラーです。↓
------------------------------------------------------------------------------------------
ハンドルされていない例外: System.IO.FileNotFoundException: c:\\sample\\car.bmp
   場所 System.Drawing.Image.FromFile(String filename, Boolean useEmbeddedColorManagement)
   場所 System.Drawing.Image.FromFile(String filename)
   場所 Treaning4.Main() 場所 C:\Users\質問者の氏名\Documents\Visual Studio 2015\Projects\Treaning4\Treaning4\CodeFile1.cs:行 12
続行するには何かキーを押してください . . .
------------------------------------------------------------------------------------------
Visual Studio(2015)上で、コードをビルドしたときにエラーはでませんが、
デバックなし開始後、コンソール?上でエラーが表示され、画像が表示されません。
目的の画像(BMP)のファイル名は、car.bmp にし、Cドライブの下にsampleというフォルダを作成し、
その中に保存しています。

該当のソースコード

using System.Windows.Forms;
using System.Drawing;

class Treaning4
{
    public static void Main()
    {
        Form fm = new Form();
        fm.Text = "サンプル";

        PictureBox pb = new PictureBox();
        pb.Image = Image.FromFile("c:¥¥sample¥¥car.bmp");
        pb.Parent = fm;

        Application.Run(fm);
    }
}

試したこと

画像を、Cドライブの直下に移動し、ソースコードを書き直しましたが、
やはりダメでした。

補足情報(FW/ツールのバージョンなど)

以下は実行時のVisual Studioの画面です。
イメージ説明
ozwk様のご要望により、エクスプローラ内をキャプチャして載せます。↓
イメージ説明

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • Shibami

    2018/12/09 17:00

    承知しました。投稿内容を修正いたしますので、お待ち下さい。

    キャンセル

  • ozwk

    2018/12/09 17:02

    bmp.bmpだろうなという探りだったので…

    キャンセル

  • Shibami

    2018/12/09 17:06

    おっしゃる通り、初歩的なミスです。エクスプローラのキャプチャを追加いたしました。念のため、画像のプロパティも載せました。

    キャンセル

回答 2

+4

FileNotFoundException というのは、ディスク上に存在しないファイルにアクセスしようとして失敗したときにスローされる例外です。

それが、

pb.Image = Image.FromFile("c:¥¥sample¥¥car.bmp");

で出ていると思いますが、ということは引数 "c:¥¥sample¥¥car.bmp" で指定されるファイルが存在しないということになります。

ファイルがあるか調べてみてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/12/09 15:25

    再度、ファイルを確認してみました。間違いなくCドライブの下のsampleというフォルダの中に、目的の画像ファイル(BMP)があります。そして、ビルド後に再度デバックなし開始を試しましたが、同じエラーがでました。

    キャンセル

  • 2018/12/09 15:25

    ファイル名も間違いないようです…。

    キャンセル

  • 2018/12/09 15:45

    Visual Studio を c:¥sample に読み取り権限のあるアカウントで立ち上げているでしょうか? 権限の問題で FileNotFoundException が出るのかは分かりませんが(違うような気もしますが)、c:¥sample¥car.bmp が間違いなく存在するなら権限の問題ぐらいしか思いつかないです。

    キャンセル

  • 2018/12/09 16:24

    権限の問題ということは、管理者としてVisual Studioを起動すればよろしいですか?念のため、Visual Studioのアイコンを右クリックから、管理者として実行し、再度コードをデバックなしで開始しましたが、同じエラーが表示されました。

    キャンセル

  • 2018/12/09 16:34

    拡張子を表示していなくて、実際のファイル名が"car.bmp.bmp"になっているとか

    キャンセル

  • 2018/12/09 16:49

    YAmaGNZ様。メッセージありがとうございます。ご指摘の通り、ファイル名から拡張子の.bmpを抜くと、ウィンドウ画面まで進みました!!ですが、目的の画像は表示されず、真っ白な長方形が左上の隅に表示されて終わってしまいました…。

    キャンセル

checkベストアンサー

+3

質問のコードは実際に使われているものをコピペしたものですか?
ならば文字が違います。

c:¥¥sample¥¥car.bmp

c:\\sample\\car.bmp

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/12/09 16:38

    エラーが正しくバックスラッシュになっているのは謎ですが、もしかしてこれはキーボードから打ったものではありませんか?

    キャンセル

  • 2018/12/09 16:42

    Zuishin様。メッセージありがとうございます。当サイトに投稿した文のことでしょうか?これは、コンソールに表示されたエラー、メッセージをそのままコピペしました。Visual Studio内のコードは、キーボードでうっています。

    キャンセル

  • 2018/12/09 16:44

    Visual Studio 内のコードを質問にコピペしてください。
    違うソースからは原因が正しく読み取れません。

    キャンセル

  • 2018/12/09 16:54

    他の方から、ご指摘があった通り、ファイル名から拡張子を省き、¥を\(半角)に変えると、ウィンドウ画面まで、進むことができました!!しかし、目的の画像の内容は、私がペイントで簡単に車を描いたというものなのですが、ウィンドウ内に表示されたものは、真っ白な長方形が左上の隅に現れただけです。

    キャンセル

  • 2018/12/09 16:58

    Visual Stadio内のコードは、'当該ソースコード'の項目に記載されているものがそうです。これは、私がキーボードで手打ちしたものではなく、コピペしたものです。Visual Stadio側では、エラーが発生していませんので、OutPutにあるメッセージのコピペは必要ないと判断しましたが、必要でしょうか?

    キャンセル

  • 2018/12/09 17:06

    該当のソースコードの項目に記載されているものは「¥」(円)という文字になっていますが、これは「\」(バックスラッシュ)が正しい文字です。
    ウィンドウズでは同じ形に見えても本来違う文字ですので、うまく動きません。
    出力やエラーメッセージがコピペではないということであればそこで齟齬が生じます。
    必要ですのでコピペしてください。
    人に尋ねる時にはエラーメッセージは必ずコピペです。
    でないと今回のように原因が正しく読み取れなくなります。

    エラーが出なくなったのは拡張子もありますが、このバックスラッシュが直ったことも一因です。

    キャンセル

  • 2018/12/09 17:15

    確かに、おっしゃる通り回答者様達を混乱させてしまいました。質問も初めてだったもので、必要な情報が何かということも、イマイチ理解していませんでした。ご指導、ありがとうございます。勉強になりました。

    キャンセル

  • 2018/12/09 17:21

    あとその画像をこちらで確認できるように質問に貼り付けてください。
    もしかしたらフォームからはみ出しているだけかもしれません。

    キャンセル

  • 2018/12/09 17:22

    画像の容量を小さくすると、無事にウィンドウ上にも画像が表示されました!再度、お礼申し上げます!

    キャンセル

  • 2018/12/09 17:24

    おっしゃる通りのようで、画像サイズを小さくすると表示されました!容量ではなく、画像自体が大きすぎただけだったということですね。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.40%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • C#

    9447questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。