3

私のフォルダーには、プログラムで呼び出す必要がある 2 つの画像ファイルがあります。利用した:

AppDomain.curentDomain.baseDirectory + "Path and file name";

しかし、これは私の望まない bin ディレクトリに入ります。フォルダー名をリソースとして保存したルート ディレクトリからフォルダーを読み取り、そこにファイルを保存して画像を呼び出したいので、そのコードは何ですか?

Windows フォーム アプリケーションのルート ディレクトリから読み取るにはどうすればよいですか?

4

5 に答える 5

4

通常、これらのアイテムを bin フォルダーにコピーするように設定する必要があります。ソリューション エクスプローラー/ナビゲーターで右クリックし、プロパティを選択して [出力ディレクトリにコピー] を設定します。これがうまくいくことを願っています

于 2012-09-03T10:19:05.250 に答える
1
System.IO.Path.Combine(Application.StartupPath, @"..\..\YourFile.JPG")

ファイルへの絶対パスを返しますが、アプリをデプロイするときに bin\Debug がないため、これは VS で作業しているときにのみ機能します。

string path = Path.Combine(Application.StartupPath, @"..\..\YourFile.JPG");
FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read);
Image image = Image.FromStream(stream);
stream.Close();

exe と一緒にファイルを送信する予定の場合は、ソリューション エクスプローラーでファイルを右クリックし、[プロジェクトに含める] を選択し、もう一度右クリックしてプロパティを選択し、[ビルド アクション] を [なし] に設定し、[出力ディレクトリにコピー] を設定します。プロパティで新しい場合はコピーします。これにより、ビルドするたびにファイルが bin\Debug にコピーされます。次に、次を使用できます。

string path = Path.Combine(Application.StartupPath, "YourFile.JPG");

これはVSで、そして展開するときに機能します。よりクリーンな展開のために、ファイルを実行可能ファイルにリソースとして埋め込むことをお勧めします。

于 2012-09-02T14:33:34.000 に答える
1

これを使用できます:

System.IO.Path.Combine(Environment.CurrentDirectory, "Path to File")

Environment.CurrentDirectoryアプリケーションが実行されているパスが表示されます。Visual Studio 内で実行されているかどうか、またはアプリケーションがデプロイされているかどうかは問題ではありません。

使用例

// Read image1.jpg from application folder, into Image object
Image myImage = Image.FromFile(System.IO.Path.Combine(Environment.CurrentDirectory, "image1.jpg"));
于 2012-09-02T12:59:41.597 に答える