Bagikan melalui


Cara: Menyimpan File Menggunakan Komponen SaveFileDialog

Komponen ini SaveFileDialog memungkinkan pengguna untuk menelusuri sistem file dan memilih file yang akan disimpan. Kotak dialog mengembalikan jalur dan nama file yang telah dipilih pengguna dalam kotak dialog. Namun, Anda harus menulis kode untuk benar-benar menulis file ke disk.

Untuk menyimpan file menggunakan komponen SaveFileDialog

  • Tampilkan kotak dialog Simpan File dan panggil metode untuk menyimpan file yang dipilih oleh pengguna.

    SaveFileDialog Gunakan metode komponen OpenFile untuk menyimpan file. Metode ini memberi Anda objek yang Stream dapat Anda tulis.

    Contoh di bawah ini menggunakan DialogResult properti untuk mendapatkan nama file, dan OpenFile metode untuk menyimpan file. Metode ini OpenFile memberi Anda aliran untuk menulis file.

    Dalam contoh di bawah ini, ada Button kontrol dengan gambar yang ditetapkan untuknya. Saat Anda mengklik tombol , SaveFileDialog komponen dibuat dengan filter yang memungkinkan file jenis .gif, .jpeg, dan .bmp. Jika file jenis ini dipilih dalam kotak dialog Simpan File, gambar tombol disimpan.

    Penting

    Untuk mendapatkan atau mengatur FileName properti, assembly Anda memerlukan tingkat hak istimewa yang diberikan oleh System.Security.Permissions.FileIOPermission kelas . Jika Anda berjalan dalam konteks kepercayaan parsial, prosesnya mungkin melemparkan pengecualian karena hak istimewa yang tidak mencukup. Untuk informasi selengkapnya, lihat Dasar-Dasar Keamanan Akses Kode.

    Contoh mengasumsikan formulir Anda memiliki Button kontrol dengan propertinya Image yang diatur ke file jenis .gif, .jpeg, atau .bmp.

    Catatan

    Properti FileDialog kelas FilterIndex (yang, karena warisan, adalah bagian SaveFileDialog dari kelas) menggunakan indeks berbasis satu. Ini penting jika Anda menulis kode untuk menyimpan data dalam format tertentu (misalnya, menyimpan file dalam teks biasa versus format biner). Properti ini ditampilkan dalam contoh di bawah ini.

    Private Sub Button2_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button2.Click
        ' Displays a SaveFileDialog so the user can save the Image
        ' assigned to Button2.
        Dim saveFileDialog1 As New SaveFileDialog()
        saveFileDialog1.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif"
        saveFileDialog1.Title = "Save an Image File"
        saveFileDialog1.ShowDialog()
    
        ' If the file name is not an empty string open it for saving.
        If saveFileDialog1.FileName <> "" Then
          ' Saves the Image via a FileStream created by the OpenFile method.
          Dim fs As System.IO.FileStream = Ctype _
              (saveFileDialog1.OpenFile(), System.IO.FileStream)
          ' Saves the Image in the appropriate ImageFormat based upon the
          ' file type selected in the dialog box.
          ' NOTE that the FilterIndex property is one-based.
          Select Case saveFileDialog1.FilterIndex
              Case 1
                Me.button2.Image.Save(fs, _
                    System.Drawing.Imaging.ImageFormat.Jpeg)
    
              Case 2
                Me.button2.Image.Save(fs, _
                    System.Drawing.Imaging.ImageFormat.Bmp)
    
              Case 3
                Me.button2.Image.Save(fs, _
                    System.Drawing.Imaging.ImageFormat.Gif)
            End Select
    
            fs.Close()
        End If
    End Sub
    
    private void button2_Click(object sender, System.EventArgs e)
    {
        // Displays a SaveFileDialog so the user can save the Image
        // assigned to Button2.
        SaveFileDialog saveFileDialog1 = new SaveFileDialog();
        saveFileDialog1.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif";
        saveFileDialog1.Title = "Save an Image File";
        saveFileDialog1.ShowDialog();
    
        // If the file name is not an empty string open it for saving.
        if(saveFileDialog1.FileName != "")
        {
          // Saves the Image via a FileStream created by the OpenFile method.
          System.IO.FileStream fs =
              (System.IO.FileStream)saveFileDialog1.OpenFile();
          // Saves the Image in the appropriate ImageFormat based upon the
          // File type selected in the dialog box.
          // NOTE that the FilterIndex property is one-based.
          switch(saveFileDialog1.FilterIndex)
          {
              case 1 :
              this.button2.Image.Save(fs,
                System.Drawing.Imaging.ImageFormat.Jpeg);
              break;
    
              case 2 :
              this.button2.Image.Save(fs,
                System.Drawing.Imaging.ImageFormat.Bmp);
              break;
    
              case 3 :
              this.button2.Image.Save(fs,
                System.Drawing.Imaging.ImageFormat.Gif);
              break;
          }
    
        fs.Close();
        }
    }
    
    private:
        System::Void button2_Click(System::Object ^ sender,
          System::EventArgs ^ e)
        {
          // Displays a SaveFileDialog so the user can save the Image
          // assigned to Button2.
          SaveFileDialog ^ saveFileDialog1 = new SaveFileDialog();
          saveFileDialog1->Filter =
              "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif";
          saveFileDialog1->Title = "Save an Image File";
          saveFileDialog1->ShowDialog();
          // If the file name is not an empty string, open it for saving.
          if(saveFileDialog1->FileName != "")
          {
              // Saves the Image through a FileStream created by
              // the OpenFile method.
              System::IO::FileStream ^ fs =
                safe_cast\<System::IO::FileStream*>(
                saveFileDialog1->OpenFile());
              // Saves the Image in the appropriate ImageFormat based on
              // the file type selected in the dialog box.
              // Note that the FilterIndex property is one based.
              switch(saveFileDialog1->FilterIndex)
              {
                case 1 :
                    this->button2->Image->Save(fs,
                      System::Drawing::Imaging::ImageFormat::Jpeg);
                    break;
                case 2 :
                    this->button2->Image->Save(fs,
                      System::Drawing::Imaging::ImageFormat::Bmp);
                    break;
                case 3 :
                    this->button2->Image->Save(fs,
                      System::Drawing::Imaging::ImageFormat::Gif);
                    break;
              }
          fs->Close();
          }
        }
    

    (Visual C# dan Visual C++) Tempatkan kode berikut di konstruktor formulir untuk mendaftarkan penanganan aktivitas.

    this.button2.Click += new System.EventHandler(this.button2_Click);
    
    this->button2->Click += gcnew
        System::EventHandler(this, &Form1::button2_Click);
    

    Untuk informasi selengkapnya tentang menulis aliran file, lihat BeginWrite dan Write.

    Catatan

    Kontrol tertentu, seperti RichTextBox kontrol, memiliki kemampuan untuk menyimpan file.

Baca juga