C# で埋め込みリソース テキスト ファイルを読み取る

Muhammad Zeeshan 2023年10月12日
C# で埋め込みリソース テキスト ファイルを読み取る

このチュートリアルでは、C# プログラミング言語を使用して埋め込みリソース テキスト ファイルを読み取る方法を示します。

埋め込みリソース テキスト ファイルの読み取り

埋め込みファイルは埋め込みリソースと呼ばれ、System.Reflection 名前空間にある Assembly クラスを使用して実行時にこれらのファイルにアクセスできます。 埋め込みファイルは、現在プロジェクトの一部である任意のファイルから作成できます。

埋め込まれたリソース テキスト ファイルを読み取るには、次の手順に従う必要があります。

  • フォルダとファイルを追加

    まず、files という名前のフォルダーをプロジェクトに追加します。 次に、以下に示すように、ソリューション エクスプローラーコンテキスト メニューにある追加 -> 既存のアイテムオプションを使用して、そのフォルダーに埋め込まれたファイルを追加します。

    フォルダー内に埋め込まれたファイルを追加できるようになります。

    埋め込みリソース テキスト ファイルの読み取り - フォルダーの追加

    埋め込むファイルを追加したら、File を右クリックし、Properties をクリックします。

    埋め込みリソース テキスト ファイルの読み取り - ファイル プロパティ

    次に、下のスクリーンショットに従って、Build Action 属性の値を Content から埋め込みリソースに変更します。

    埋め込みリソース テキスト ファイルの読み取り - ビルド アクション

  • Windows フォームの作成

    まず、TextBox を Windows フォームに追加し、Properties から txtTextBox という名前を付けます。

    埋め込みリソース テキスト ファイルの読み取り - テキスト ボックス

    ここで、btnText という名前のボタンを追加し、以下に示すようにボタンに Read Embed Text テキストを表示します。

    埋め込みリソース テキスト ファイルの読み取り - ボタン

  • Windows フォーム コードの記述

    まず、次のライブラリをインポートする必要があります。

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.IO;
    using System.Reflection;
    

    Read Embed Text ボタンを右クリックしてそのイベントを作成することで、ここでは次のようにボタン コードを記述します。

    埋め込みリソース テキスト ファイルの読み取り - ボタン イベント

    assembly という名前の Assembly メソッド オブジェクトを作成します。

    var asmbly = Assembly.GetExecutingAssembly();
    

    次に、filepath という名前の var 型変数を作成します。 この変数は、テキスト ファイルのパスを保持します。

    var filePath = "ReadEmbedTextbyZeeshan.files.Shani.txt";
    

    最後に、指定されたパスからテキスト ファイルを読み取る StreamReader を使用して、埋め込まれたファイル テキストを表示します。

    using (Stream s = asmbly.GetManifestResourceStream(filePath)) using (
        StreamReader sr = new StreamReader(s)) {
      txtTextBox.Text = sr.ReadToEnd();
    }
    
  • 完全なソース コード
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.IO;
    using System.Reflection;
    
    namespace ReadEmbedTextbyZeeshan {
      public partial class Form1 : Form {
        public Form1() {
          InitializeComponent();
        }
        private void btnText_Click(object sender, EventArgs e) {
          var asmbly = Assembly.GetExecutingAssembly();
          var filePath = "ReadEmbedTextbyZeeshan.files.Shani.txt";
          using (Stream s = asmbly.GetManifestResourceStream(filePath)) using (
              StreamReader sr = new StreamReader(s)) {
            txtTextBox.Text = sr.ReadToEnd();
          }
        }
      }
    }
    

    Read Embed Text ボタンをクリックすると、以下の出力が表示されます。

    出力:

    埋め込みリソース テキスト ファイルの読み取り - 出力

Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

関連記事 - Csharp File