C# でのファイル ダイアログの保存

Naila Saad Siddiqui 2023年10月12日
  1. C#SaveFileDialog クラス
  2. まとめ
C# でのファイル ダイアログの保存

この簡単なガイドでは、C# で SaveFileDialog クラスを使用して、C# アプリから Windows ファイル ストレージにファイルを保存します。

C#SaveFileDialog クラス

ユーザーはファイル システムを参照し、SaveFileDialog コンポーネントを使用して保存するファイルを選択できます。 ダイアログ ボックスは、ユーザーがそこで選択したファイルの名前とパスを返します。

ファイルをディスクに書き込むには、コードを記述する必要があります。

SaveFileDialog クラスの使用手順

  • 最初のステップは、Windows フォーム アプリケーションを作成し、SaveFileDialog コントロールを追加することです。

    実行時にコードで SaveFileDialog クラスを使用するか、設計時にフォーム デザイナを使用して、SaveFileDialog コントロールを作成できます。 SaveFileDialog は、他の Windows フォーム コントロールのようなビジュアル プロパティを持たず、持つ必要もありません。

    デザイン ビューまたは明示的なコードのいずれかを使用して、SaveFileDialog コントロールを作成できます。 両方の方法を見てみましょう。

    • コードで SaveFileDialog を作成します。 SaveFileDialog を作成するコードは次のとおりです。
    SaveFileDialog saveDialog = new SaveFileDialog();
    

    上記のコードは SaveFileDialog ボックス オブジェクトを作成します。 このダイアログを表示するには、ShowDialog メソッドを使用します。

    saveDialog.showDialog();
    
    • 設計を通じて SaveFileDialog を作成します。 ツールボックスから Visual Studio のフォームに SaveFileDialog コントロールをドラッグ アンド ドロップして、設計時に SaveFileDialog コントロールを作成します。

    下の図は、フォームにドラッグ アンド ドロップした後の SaveFileDialog を示しています。

    ファイル保存ダイアログコントロール

  • 2 番目のステップは、SaveFileDialog のいくつかのプロパティを設定することです。 コーディング要件に従って使用できるさまざまなプロパティが用意されています。

    プロパティ ウィンドウからプロパティを設定するのが最も簡単なオプションです。 次の図は、[プロパティ] ウィンドウの外観を示しています。

    ファイル保存ダイアログのプロパティ

    このウィンドウでは、さまざまなプロパティを設定できます。 これらのプロパティのいくつかについて説明しましょう: -

    初期ディレクトリ

    Initial Directory プロパティは、ファイルを保存するためのダイアログ ボックスが表示されたときに開くデフォルト ディレクトリを指定します。 このプロパティは、上記のプロパティ ウィンドウから、または次のようなコードを使用して設定できます。

    saveDialog.InitialDirectory = @"D:/New Folder";
    

    タイトル

    Title プロパティは、ファイルを保存するために表示されるダイアログ ボックスに表示されるタイトルを設定します。

    saveDialog.Title = "Save Your File Here";
    

    フィルター

    ファイル保存ダイアログの filter プロパティは、ファイル保存ダイアログを使用して保存できるファイルの種類を制限します。 たとえば、ユーザーを制限したい場合は、バイナリ .bin ファイルのみを保存するためにフィルター オプションを指定できます。

    saveDialog.Filter = "bin files (*.bin)|*.bin|All files (*.*)|*.*";
    

    これらは、ファイルを保存するために設定できるいくつかのプロパティです。 他にもたくさんありますが、この記事ではこれらの重要なものについて説明します。

  • プロパティを設定したら、コードを記述してファイルをディスクに保存できます。 これには、OpenFile メソッドが使用されます。 このメソッドは、ファイルをディスクに保存するために使用できる Stream オブジェクトを返します。
    Stream fileStream;
    if (saveDialog.ShowDialog() == DialogResult.OK) {
      if ((fileStream = saveDialog.OpenFile()) != null) {
        // You can write the code to write the file here.
        fileStream.Close();
      }
    }
    

ここで、ファイルを保存するための完全なコードを要約しましょう。

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

namespace WinFormsApp1 {
  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e) {
      SaveFileDialog saveDialog = new SaveFileDialog();
      saveDialog.InitialDirectory = @"C:\Users\user01\OneDrive\Documents";
      saveDialog.Title = "Save Your File Here";
      saveDialog.Filter = "bin files (*.bin)|*.bin|All files (*.*)|*.*";
      Stream fileStream;
      if (saveDialog.ShowDialog() == DialogResult.OK) {
        if ((fileStream = saveDialog.OpenFile()) != null) {
          // You can write the code to write the file here.
          fileStream.Close();
        }
      }
    }
  }
}

ボタンのクリック イベントでこのコードを記述して、ボタンがクリックされたときに保存ダイアログが開くようにしました。 これにより、次の出力が生成されます。

ファイル保存ダイアログ出力1

ファイルを保存ボタンをクリックすると、次のポップアップ ダイアログ ボックスが表示されます。

ファイル保存ダイアログ出力2

ダイアログ ボックスで、場所が [ドキュメント] フォルダーに設定され、ファイルの種類が [Bin ファイル] に設定されていることがわかります。

まとめ

ユーザーは Windows のファイル保存ダイアログを開始し、SaveFileDialog コントロールを使用してファイルを保存できます。 この記事では、Windows の [ファイルの保存] ダイアログを使用して、Windows フォーム アプリケーションでそのプロパティを構成する方法について説明しました。

関連記事 - Csharp GUI