Aracılığıyla paylaş


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 konularını gösterir. Örnek, iletişim kutusunu görüntülemek ve döndürmek DialogResultiçin yöntemini kullanırShowDialog. Örnek, üzerine yerleştirilmiş bir Button form ve System.IO buna eklenen ad alanı gerektirir.

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öntemler 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. İletiş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 önce programın iletişim kutusunu gizlemesi veya kapatması gerekir (genellikle bazı kullanıcı eylemlerine yanıt olarak).

Dikkat

ve SaveFileDialoggibi OpenFileDialog tü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 bir 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 olası yolu vardır. Aşağıdaki tabloda yolları dinamik olarak oluşturma teknikleri gösterilmektedir.

Yol veya program kategorisi Kullanılacak sınıf ve üyeler
Program Files, MyDocuments, Desktop 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 , ExecutablePathLocalUserAppDataPath, ve 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öntemiSystem.IO.Directory, uygulamanın geçerli yürütme dizinini döndürür.

RootDirectory sınıfının özelliğiDriveInfo, 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 ApplicationSettingsBaseerişin. 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ürecek olan 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.

Açıklanan tekniklerden biri veya daha fazlası kullanılarak tam yol 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ı sırasıyla dosyaları ve dizinleri işleyen statik üyelere sahiptir.

Ö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

Name Description
EventFileOk

Olayın sahibidir FileOk .

Özellikler

Name Description
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

Bu FileDialog örneğin Windows Vista'da çalışırken 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 bir 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 belirtiyorsa iletişim kutusunun bir uyarı görüntüleyip görüntülemediğini belirten bir değer alır veya ayarlar.

ClientGuid

GUID'yi 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ı hale gelir. Bir uygulama GUID belirterek, 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şvuruda bulunılan dosyanın konumunu mu döndürdüğüne veya kısayolun konumunu döndürdüğüne (.lnk) ilişkin 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 dize 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 durumda olan 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 tutamacını alır.

OkRequiresInteraction

Kullanıcı görünümde gezinene veya dosya adını (varsa) düzenleyene kadar 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üklemediğ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ı görüntülemeyi ve kaydetmeyi 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

Name Description
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()

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

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

tarafından Component kullanılan yönetilmeyen kaynakları serbest bırakır ve isteğe bağlı olarak yönetilen kaynakları 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 Componenttarafından Container sağlanan bir hizmeti temsil eden bir nesnesi döndürür.

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

Geçerli örneğin Type 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 Objectbasit 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

Name Description
Disposed

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

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

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

HelpRequest

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

(Devralındığı yer: CommonDialog)

Şunlara uygulanır

Ayrıca bkz.