FileDialog Sınıf

Tanım

Kullanıcının dosya seçebileceği bir iletişim kutusu görüntüler.

public ref class FileDialog abstract : System::Windows::Forms::CommonDialog
public abstract class FileDialog : System.Windows.Forms.CommonDialog
type FileDialog = class
    inherit CommonDialog
Public MustInherit Class FileDialog
Inherits CommonDialog
Devralma
Türetilmiş

Örnekler

Aşağıdaki kod örneği uygulamasını kullanır OpenFileDialogFileDialog ve oluşturma, özellikleri ayarlama ve iletişim kutusunu gösterme adımlarını gösterir. Örnek, iletişim kutusunu görüntülemek ve döndürmek DialogResultiçin yöntemini kullanırShowDialog. Örnekte, üzerine yerleştirilmiş bir Button form ve System.IO buna eklenen ad alanı gerekir.

private:
   void button1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      Stream^ myStream;
      OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog;

      openFileDialog1->InitialDirectory = "c:\\";
      openFileDialog1->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
      openFileDialog1->FilterIndex = 2;
      openFileDialog1->RestoreDirectory = true;

      if ( openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK )
      {
         if ( (myStream = openFileDialog1->OpenFile()) != nullptr )
         {
            // Insert code to read the stream here.
            myStream->Close();
         }
      }
   }
var fileContent = string.Empty;
var filePath = string.Empty;

using (OpenFileDialog openFileDialog = new OpenFileDialog())
{
    openFileDialog.InitialDirectory = "c:\\";
    openFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
    openFileDialog.FilterIndex = 2;
    openFileDialog.RestoreDirectory = true;

    if (openFileDialog.ShowDialog() == DialogResult.OK)
    {
        //Get the path of specified file
        filePath = openFileDialog.FileName;

        //Read the contents of the file into a stream
        var fileStream = openFileDialog.OpenFile();

        using (StreamReader reader = new StreamReader(fileStream))
        {
            fileContent = reader.ReadToEnd();
        }
    }
}

MessageBox.Show(fileContent, "File Content at path: " + filePath, MessageBoxButtons.OK);
Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim myStream As Stream = Nothing
    Dim openFileDialog1 As New OpenFileDialog()

    openFileDialog1.InitialDirectory = "c:\"
    openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
    openFileDialog1.FilterIndex = 2
    openFileDialog1.RestoreDirectory = True

    If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
        Try
            myStream = openFileDialog1.OpenFile()
            If (myStream IsNot Nothing) Then
                ' Insert code to read the stream here.
            End If
        Catch Ex As Exception
            MessageBox.Show("Cannot read file from disk. Original error: " & Ex.Message)
        Finally
            ' Check this again, since we need to make sure we didn't throw an exception on open.
            If (myStream IsNot Nothing) Then
                myStream.Close()
            End If
        End Try
    End If
End Sub

Açıklamalar

FileDialogve SaveFileDialog sınıfları için OpenFileDialog ortak davranış içeren soyut bir sınıftır. Doğrudan kullanılması amaçlanmamıştır, ancak bu iki sınıf için ortak davranış içerir. örneğini FileDialogoluşturamazsınız. Sınıfı genel olarak bildirilir, ancak iç soyut yöntemleri içerdiğinden, bu sınıftan devralamazsınız. Bir dosyayı seçmek veya kaydetmek üzere bir iletişim kutusu oluşturmak için veya SaveFileDialogkullanınOpenFileDialog.

FileDialog kalıcı bir iletişim kutusudur; bu nedenle, gösterildiğinde, kullanıcı bir dosya seçene kadar uygulamanın geri kalanını engeller. bir iletişim kutusu modlu olarak görüntülendiğinde, iletişim kutusundaki nesneler dışında hiçbir giriş (klavye veya fare tıklaması) gerçekleşemez. Çağıran programa giriş yapılabilmesi için programın iletişim kutusunu gizlemesi veya kapatması gerekir (genellikle bazı kullanıcı eylemlerine yanıt olarak).

Dikkat

ve gibi OpenFileDialogSaveFileDialogtüretilmiş FileDialogsınıfları kullandığınızda, mutlak yollar içeren dize değişmez değerlerini kullanmaktan kaçının. Bunun yerine, aşağıdaki tabloda açıklanan tekniklerden birini veya daha fazlasını kullanarak yolu dinamik olarak alın.

Kullanıcıların dosya yerine klasör seçmesini sağlamak istiyorsanız kullanın FolderBrowserDialog.

Uygulamanın türüne, uygulamayla ilişkili verilerin nasıl depolandığına ve dosya sistemine erişme nedenlerine bağlı olarak, dizin yolu oluşturmanın birçok yolu vardır. Aşağıdaki tabloda, yolları dinamik olarak oluşturmaya yönelik teknikler gösterilmektedir.

Yol veya program kategorisi Kullanılacak sınıf ve üyeler
Program Dosyaları, MyDocuments, Masaüstü vb. gibi standart Windows yolları System.Environment sınıfı, gibi statik yöntemleri SystemDirectoryaracılığıyla veya numaralandırılmış değerlerden birini Environment.SpecialFolder kullanarak yöntemi aracılığıyla GetFolderPath bunlar için en eksiksiz kaynaktır.
Geçerli uygulamayla ilgili yollar sınıfı, Application , ExecutablePath, LocalUserAppDataPathve CommonAppDataPathgibi StartupPathbelirli yolları almak için statik üyelere sahiptir.

GetTempPath yöntemiSystem.IO.Path, geçici klasörün yolunu döndürür.

GetCurrentDirectory sınıfının yöntemi System.IO.Directory uygulamanın geçerli yürütme dizinini döndürür.

RootDirectory sınıfının özelliği DriveInfo belirtilen sürücünün kök dizinini temsil eder.
Uygulama ayarları olarak depolanan yollar öğesinden türetilen sarmalayıcı sınıfının ilgili uygulama ayarları özelliğine erişin ApplicationSettingsBase. Daha fazla bilgi için bkz. Windows Forms için Uygulama Ayarları.
Kayıt defteri depolama Bazı uygulamalar dizin bilgilerini kayıt defterinde depolar. sınıfıApplication, bir RegistryKey değere CommonAppDataPath çözümleyen ve LocalUserAppDataPath özelliklerine sahiptir.
ClickOnce uygulamaları ClickOnce uygulamaları için, ClickOnce veri dizinine bir işaretçi döndüren gibi UserAppDataPathsınıf üyelerini kullanınApplication. Daha fazla bilgi için bkz . ClickOnce Uygulamalarında Yerel ve Uzak Verilere Erişme.
Uluslararası uygulamalar Uluslararası uygulamalar için, sınıfını kullanarak System.Resources.ResourceReader uygulamanızdaki bir dize kaynağından göreli yol bölümünü alın. Genelleştirme ve yerelleştirme hakkında daha fazla bilgi için Genelleştirme ve Yerelleştirme konusuna bakın.

Tam bir yolun, açıklanan tekniklerden biri veya daha fazlası kullanılarak oluşturulabileceğine dikkat edin. Örneğin, GetFolderPath yöntemi MyDocuments klasörünün yolunu almak için kullanılabilir, ardından göreli alt dizin bölümü eklemek için bir uygulama ayarı kullanılabilir.

sınıfı, System.IO.Path mutlak ve göreli yol dizelerini işlemeye yardımcı olmak için statik üyeler içerirken System.IO.File ve System.IO.Directory sınıflarında sırasıyla dosyaları ve dizinleri işleyen statik üyeler bulunur.

Önemli

Uygulamanızın kullanıcısı klasöründeki FileDialogklasörü değiştirirse, uygulamanızın geçerli çalışma dizini içinde FileDialogbelirtilen konuma ayarlanır. Bunu önlemek için özelliğini olarak trueayarlayınRestoreDirectory.

Alanlar

EventFileOk

Olayın sahibidir FileOk .

Özellikler

AddExtension

Kullanıcı uzantıyı atlarsa, iletişim kutusunun dosya adına otomatik olarak uzantı ekleyip eklemediğini belirten bir değer alır veya ayarlar.

AddToRecent

İletişim kutusunun açılan veya kaydedilen dosyayı son listeye ekleyip eklemediğini belirten bir değer alır veya ayarlar.

AutoUpgradeEnabled

Windows Vista'da çalışırken bu FileDialog örneğin görünümü ve davranışı otomatik olarak yükseltmesi gerekip gerekmediğini belirten bir değer alır veya ayarlar.

CanRaiseEvents

Bileşenin olay oluşturup oluşturamayacağını belirten bir değer alır.

(Devralındığı yer: Component)
CheckFileExists

Kullanıcı var olmayan bir dosya adı belirtirse iletişim kutusunun uyarı görüntüleyip görüntülemediğini belirten bir değer alır veya ayarlar.

CheckPathExists

Kullanıcı var olmayan bir yol belirtirse iletişim kutusunun uyarı görüntüleyip görüntülemediğini belirten bir değer alır veya ayarlar.

ClientGuid

Guid değerini bu iletişim kutusu durumuyla ilişkilendirilecek şekilde alır veya ayarlar. Genellikle, son ziyaret edilen klasör ve iletişim kutusunun konumu ve boyutu gibi durum yürütülebilir dosyanın adına göre kalıcıdır. Guid belirterek, bir uygulama aynı uygulama içindeki iletişim kutusunun farklı sürümleri için farklı kalıcı durumlara sahip olabilir (örneğin, içeri aktarma iletişim kutusu ve açık iletişim kutusu).

Bir uygulama görsel stiller kullanmıyorsa veya olarak ayarlandıysa AutoUpgradeEnabledfalsebu işlev kullanılamaz.

Container

öğesini IContainer içeren öğesini Componentalır.

(Devralındığı yer: Component)
CustomPlaces

Bu FileDialog örnek için özel yerler koleksiyonunu alır.

DefaultExt

Varsayılan dosya adı uzantısını alır veya ayarlar.

DereferenceLinks

İletişim kutusunun kısayol tarafından başvurulan dosyanın konumunu döndürdüğü veya kısayolun konumunu (.lnk) döndürdüğü bir değer alır veya ayarlar.

DesignMode

öğesinin şu anda tasarım modunda olup olmadığını Component gösteren bir değer alır.

(Devralındığı yer: Component)
Events

Bu Componentöğesine eklenen olay işleyicilerinin listesini alır.

(Devralındığı yer: Component)
FileName

Dosya iletişim kutusunda seçilen dosya adını içeren bir dizeyi alır veya ayarlar.

FileNames

İletişim kutusundaki tüm seçili dosyaların dosya adlarını alır.

Filter

İletişim kutusundaki "Dosya türü olarak kaydet" veya "Dosya türü" kutusunda görünen seçenekleri belirleyen geçerli dosya adı filtre dizesini alır veya ayarlar.

FilterIndex

Dosya iletişim kutusunda seçili durumdaki filtrenin dizinini alır veya ayarlar.

InitialDirectory

Dosya iletişim kutusu tarafından görüntülenen ilk dizini alır veya ayarlar.

Instance

Uygulama için Win32 örnek tanıtıcısını alır.

OkRequiresInteraction

Kullanıcı görünümde gezinene veya dosya adını düzenleyene kadar (varsa) iletişim kutusunun Tamam düğmesinin devre dışı bırakıldığını belirten bir değer alır veya ayarlar.

Options

başlatma FileDialogdeğerlerini alır.

RestoreDirectory

İletişim kutusunun kapatmadan önce dizini daha önce seçilen dizine geri yükleyip geri yüklemeyeceğini belirten bir değer alır veya ayarlar.

ShowHelp

Dosya iletişim kutusunda Yardım düğmesinin görüntülenip görüntülenmeyeceğini belirten bir değer alır veya ayarlar.

ShowHiddenFiles

İletişim kutusunun gizli ve sistem dosyalarını görüntüleyip görüntülemediğini belirten bir değer alır veya ayarlar.

ShowPinnedPlaces

Görünümün gezinti bölmesinde varsayılan olarak gösterilen öğelerin gösterilip gösterilmediğini belirten bir değer alır veya ayarlar.

Site

öğesini alır veya ayarlar ISiteComponent.

(Devralındığı yer: Component)
SupportMultiDottedExtensions

İletişim kutusunun birden çok dosya adı uzantısına sahip dosyaların görüntülenmesini ve kaydedilmesini destekleyip desteklemediğini alır veya ayarlar.

Tag

Denetim hakkındaki verileri içeren bir nesneyi alır veya ayarlar.

(Devralındığı yer: CommonDialog)
Title

Dosya iletişim kutusu başlığını alır veya ayarlar.

ValidateNames

İletişim kutusunun yalnızca geçerli Win32 dosya adlarını kabul edip etmediğini belirten bir değer alır veya ayarlar.

Yöntemler

CreateObjRef(Type)

Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur.

(Devralındığı yer: MarshalByRefObject)
Dispose()

Component tarafından kullanılan tüm kaynakları serbest bırakır.

(Devralındığı yer: Component)
Dispose(Boolean)

Component tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve yönetilen kaynakları isteğe bağlı olarak serbest bırakır.

(Devralındığı yer: Component)
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetLifetimeService()
Geçersiz.

Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır.

(Devralındığı yer: MarshalByRefObject)
GetService(Type)

veya tarafından ComponentContainersağlanan bir hizmeti temsil eden bir nesnesi döndürür.

(Devralındığı yer: Component)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
HookProc(IntPtr, Int32, IntPtr, IntPtr)

Dosya iletişim kutusuna belirli işlevler eklemek için geçersiz kılınan ortak iletişim kutusu kanca yordamını tanımlar.

InitializeLifetimeService()
Geçersiz.

Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır.

(Devralındığı yer: MarshalByRefObject)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
MemberwiseClone(Boolean)

Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur.

(Devralındığı yer: MarshalByRefObject)
OnFileOk(CancelEventArgs)

Olayı tetikler FileOk .

OnHelpRequest(EventArgs)

Olayı tetikler HelpRequest .

(Devralındığı yer: CommonDialog)
OwnerWndProc(IntPtr, Int32, IntPtr, IntPtr)

Ortak bir iletişim kutusuna belirli işlevler eklemek için geçersiz kılınan sahip penceresi yordamını tanımlar.

(Devralındığı yer: CommonDialog)
Reset()

Tüm özellikleri varsayılan değerlerine sıfırlar.

RunDialog(IntPtr)

Ortak bir iletişim kutusu belirtir.

ShowDialog()

Varsayılan sahibi olan ortak bir iletişim kutusu çalıştırır.

(Devralındığı yer: CommonDialog)
ShowDialog(IWin32Window)

Belirtilen sahiple ortak bir iletişim kutusu çalıştırır.

(Devralındığı yer: CommonDialog)
ToString()

Bu nesnenin dize sürümünü sağlar.

Ekinlikler

Disposed

Bileşen yöntemine Dispose() yapılan bir çağrı tarafından atıldığında gerçekleşir.

(Devralındığı yer: Component)
FileOk

Kullanıcı dosyadaki veya Kaydet düğmesine tıkladığında gerçekleşir.

HelpRequest

Kullanıcı ortak bir iletişim kutusundaki Yardım düğmesine tıkladığında gerçekleşir.

(Devralındığı yer: CommonDialog)

Şunlara uygulanır

Ayrıca bkz.