Udostępnij za pośrednictwem


FileDialog Klasa

Definicja

Wyświetla okno dialogowe, z którego użytkownik może wybrać plik.

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
Dziedziczenie
Pochodne

Przykłady

Poniższy przykład kodu używa OpenFileDialog implementacji FileDialog i ilustruje tworzenie, ustawianie właściwości i wyświetlanie okna dialogowego. W przykładzie ShowDialog użyto metody , aby wyświetlić okno dialogowe i zwrócić DialogResultelement . W tym przykładzie wymagany jest formularz z umieszczonym Button na nim i dodanym System.IO do niego obszarem nazw.

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

Uwagi

FileDialog jest abstrakcyjną klasą, która zawiera typowe zachowanie dla OpenFileDialog klas i SaveFileDialog . Nie jest przeznaczony do użycia bezpośrednio, ale zawiera typowe zachowanie dla tych dwóch klas. Nie można utworzyć wystąpienia klasy FileDialog. Mimo że klasa jest zadeklarowana publicznie, nie można jej dziedziczyć, ponieważ zawiera wewnętrzne metody abstrakcyjne. Aby utworzyć okno dialogowe, aby wybrać lub zapisać plik, użyj polecenia OpenFileDialog lub SaveFileDialog.

FileDialog to modalne okno dialogowe; w związku z tym, gdy jest wyświetlany, blokuje resztę aplikacji, dopóki użytkownik nie wybrał pliku. Gdy okno dialogowe jest wyświetlane modalnie, żadne dane wejściowe (klawiatura lub kliknięcie myszą) nie mogą wystąpić z wyjątkiem obiektów w oknie dialogowym. Program musi ukryć lub zamknąć okno dialogowe (zwykle w odpowiedzi na akcję użytkownika) przed wprowadzeniem danych wejściowych do programu wywołującego.

Przestroga

W przypadku używania klas pochodnych od FileDialog, takich jak OpenFileDialog i SaveFileDialog, unikaj używania literałów ciągów zawierających ścieżki bezwzględne. Zamiast tego dynamicznie uzyskaj ścieżkę przy użyciu co najmniej jednej techniki opisanej w poniższej tabeli.

Jeśli chcesz umożliwić użytkownikom wybranie folderu zamiast pliku, użyj polecenia FolderBrowserDialog.

W zależności od typu aplikacji, sposobu przechowywania danych skojarzonych z aplikacją oraz przyczyny uzyskiwania dostępu do systemu plików istnieje wiele możliwych sposobów tworzenia ścieżki katalogu. W poniższej tabeli przedstawiono techniki dynamicznego tworzenia ścieżek.

Ścieżka lub kategoria programu Klasa i elementy członkowskie do użycia
Standardowe ścieżki systemu Windows, takie jak Program Files, MyDocuments, Desktop itd. Klasa System.Environment jest najbardziej kompletnym źródłem dla tych metod, za pośrednictwem metod statycznych, takich jak SystemDirectory, lub za pomocą GetFolderPath metody, przy użyciu jednej z Environment.SpecialFolder wyliczonych wartości.
Ścieżki powiązane z bieżącą aplikacją Klasa Application ma statyczne elementy członkowskie, aby uzyskać pewne ścieżki, takie jak StartupPath, ExecutablePath, LocalUserAppDataPathi CommonAppDataPath.

Metoda GetTempPathSystem.IO.Path zwraca ścieżkę folderu tymczasowego.

Metoda GetCurrentDirectorySystem.IO.Directory klasy zwraca bieżący katalog wykonujący aplikację.

Właściwość RootDirectoryDriveInfo klasy reprezentuje katalog główny określonego dysku.
Ścieżki przechowywane jako ustawienia aplikacji Uzyskaj dostęp do właściwości ustawień odpowiednich aplikacji klasy otoki pochodzącej z ApplicationSettingsBaseklasy . Aby uzyskać więcej informacji, zobacz Ustawienia aplikacji dla Windows Forms.
Magazyn rejestru Niektóre aplikacje przechowują informacje o katalogu w rejestrze. Klasa Application ma właściwości iLocalUserAppDataPath, które rozpoznają RegistryKey wartość.CommonAppDataPath
ClickOnce — aplikacje W przypadku aplikacji ClickOnce użyj Application składowych klas, takich jak UserAppDataPath, które będą zwracać wskaźnik do katalogu danych ClickOnce. Aby uzyskać więcej informacji, zobacz Uzyskiwanie dostępu do danych lokalnych i zdalnych w aplikacjach ClickOnce.
Aplikacje międzynarodowe W przypadku aplikacji międzynarodowych pobierz część ścieżki względnej z zasobu ciągu w aplikacji przy użyciu System.Resources.ResourceReader klasy . Aby uzyskać więcej informacji na temat globalizacji i lokalizacji, zobacz temat Globalizacja i lokalizacja.

Zwróć uwagę, że pełna ścieżka może zostać utworzona przy użyciu co najmniej jednej z opisanych technik. Na przykład GetFolderPath metoda może służyć do uzyskania ścieżki do folderu MyDocuments, a następnie ustawienie aplikacji może służyć do dodawania części podkatalogu względnego.

Klasa System.IO.Path zawiera statyczne elementy członkowskie ułatwiające manipulowanie ciągami ścieżki bezwzględnej i względnej, natomiast System.IO.File klasy i System.IO.Directory mają statyczne elementy członkowskie, które odpowiednio manipulują plikami i katalogami.

Ważne

Jeśli użytkownik aplikacji zmieni folder w folderze FileDialog, bieżący katalog roboczy aplikacji jest ustawiony na lokalizację określoną w elemencie FileDialog. Aby temu zapobiec, ustaw RestoreDirectory właściwość na true.

Pola

EventFileOk

Jest właścicielem FileOk zdarzenia.

Właściwości

AddExtension

Pobiera lub ustawia wartość wskazującą, czy okno dialogowe automatycznie dodaje rozszerzenie do nazwy pliku, jeśli użytkownik pomija rozszerzenie.

AddToRecent

Pobiera lub ustawia wartość wskazującą, czy okno dialogowe dodaje otwierany lub zapisywany plik na najnowszej liście.

AutoUpgradeEnabled

Pobiera lub ustawia wartość wskazującą, czy to FileDialog wystąpienie powinno automatycznie uaktualniać wygląd i zachowanie podczas uruchamiania w systemie Windows Vista.

CanRaiseEvents

Pobiera wartość wskazującą, czy składnik może zgłosić zdarzenie.

(Odziedziczone po Component)
CheckFileExists

Pobiera lub ustawia wartość wskazującą, czy okno dialogowe wyświetla ostrzeżenie, jeśli użytkownik określa nazwę pliku, która nie istnieje.

CheckPathExists

Pobiera lub ustawia wartość wskazującą, czy okno dialogowe wyświetla ostrzeżenie, jeśli użytkownik określa ścieżkę, która nie istnieje.

ClientGuid

Pobiera lub ustawia identyfikator GUID do skojarzenia z tym stanem okna dialogowego. Zazwyczaj stan, taki jak ostatni odwiedzony folder i położenie i rozmiar okna dialogowego, są utrwalane na podstawie nazwy pliku wykonywalnego. Określając identyfikator GUID, aplikacja może mieć różne stany utrwalone dla różnych wersji okna dialogowego w tej samej aplikacji (na przykład okno dialogowe importowania i otwarte okno dialogowe).

Ta funkcja nie jest dostępna, jeśli aplikacja nie używa stylów wizualnych lub jeśli AutoUpgradeEnabled jest ustawiona na falsewartość .

Container

Pobiera element IContainer zawierający element Component.

(Odziedziczone po Component)
CustomPlaces

Pobiera kolekcję miejsc niestandardowych dla tego FileDialog wystąpienia.

DefaultExt

Pobiera lub ustawia domyślne rozszerzenie nazwy pliku.

DereferenceLinks

Pobiera lub ustawia wartość wskazującą, czy okno dialogowe zwraca lokalizację pliku, do których odwołuje się skrót, czy też zwraca lokalizację skrótu (lnk).

DesignMode

Pobiera wartość wskazującą, czy Component element jest obecnie w trybie projektowania.

(Odziedziczone po Component)
Events

Pobiera listę programów obsługi zdarzeń dołączonych do tego Componentelementu .

(Odziedziczone po Component)
FileName

Pobiera lub ustawia ciąg zawierający nazwę pliku wybraną w oknie dialogowym pliku.

FileNames

Pobiera nazwy plików wszystkich wybranych plików w oknie dialogowym.

Filter

Pobiera lub ustawia bieżący ciąg filtru nazwy pliku, który określa opcje wyświetlane w oknie dialogowym "Zapisz jako typ pliku" lub "Pliki typu".

FilterIndex

Pobiera lub ustawia indeks filtru aktualnie wybranego w oknie dialogowym pliku.

InitialDirectory

Pobiera lub ustawia początkowy katalog wyświetlany przez okno dialogowe pliku.

Instance

Pobiera dojście wystąpienia Win32 dla aplikacji.

OkRequiresInteraction

Pobiera lub ustawia wartość wskazującą, czy przycisk OK okna dialogowego jest wyłączony, dopóki użytkownik nie przejdzie do widoku lub edytuje nazwę pliku (jeśli ma to zastosowanie).

Options

Pobiera wartości w celu zainicjowania elementu FileDialog.

RestoreDirectory

Pobiera lub ustawia wartość wskazującą, czy okno dialogowe przywraca katalog do wcześniej wybranego katalogu przed zamknięciem.

ShowHelp

Pobiera lub ustawia wartość wskazującą, czy przycisk Pomoc jest wyświetlany w oknie dialogowym pliku.

ShowHiddenFiles

Pobiera lub ustawia wartość wskazującą, czy okno dialogowe wyświetla ukryte i systemowe pliki.

ShowPinnedPlaces

Pobiera lub ustawia wartość wskazującą, czy elementy wyświetlane domyślnie w okienku nawigacji widoku są wyświetlane.

Site

Pobiera lub ustawia ISite element .Component

(Odziedziczone po Component)
SupportMultiDottedExtensions

Pobiera lub ustawia, czy okno dialogowe obsługuje wyświetlanie i zapisywanie plików z wieloma rozszerzeniami nazw plików.

Tag

Pobiera lub ustawia obiekt zawierający dane dotyczące kontrolki.

(Odziedziczone po CommonDialog)
Title

Pobiera lub ustawia tytuł okna dialogowego pliku.

ValidateNames

Pobiera lub ustawia wartość wskazującą, czy okno dialogowe akceptuje tylko prawidłowe nazwy plików Win32.

Metody

CreateObjRef(Type)

Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym.

(Odziedziczone po MarshalByRefObject)
Dispose()

Zwalnia wszelkie zasoby używane przez element Component.

(Odziedziczone po Component)
Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element Component i opcjonalnie zwalnia zasoby zarządzane.

(Odziedziczone po Component)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetLifetimeService()
Przestarzałe.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
GetService(Type)

Zwraca obiekt reprezentujący usługę dostarczaną przez Component obiekt lub przez obiekt Container.

(Odziedziczone po Component)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
HookProc(IntPtr, Int32, IntPtr, IntPtr)

Definiuje wspólną procedurę zaczepienia okna dialogowego, która jest zastępowana w celu dodania określonych funkcji do okna dialogowego pliku.

InitializeLifetimeService()
Przestarzałe.

Uzyskuje obiekt usługi okresu istnienia, aby kontrolować zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu.

(Odziedziczone po MarshalByRefObject)
OnFileOk(CancelEventArgs)

FileOk Zgłasza zdarzenie.

OnHelpRequest(EventArgs)

HelpRequest Zgłasza zdarzenie.

(Odziedziczone po CommonDialog)
OwnerWndProc(IntPtr, Int32, IntPtr, IntPtr)

Definiuje procedurę okna właściciela, która jest zastępowana, aby dodać określone funkcje do wspólnego okna dialogowego.

(Odziedziczone po CommonDialog)
Reset()

Resetuje wszystkie właściwości do ich wartości domyślnych.

RunDialog(IntPtr)

Określa typowe okno dialogowe.

ShowDialog()

Uruchamia wspólne okno dialogowe z domyślnym właścicielem.

(Odziedziczone po CommonDialog)
ShowDialog(IWin32Window)

Uruchamia wspólne okno dialogowe z określonym właścicielem.

(Odziedziczone po CommonDialog)
ToString()

Udostępnia wersję ciągu tego obiektu.

Zdarzenia

Disposed

Występuje, gdy składnik jest usuwany przez wywołanie Dispose() metody .

(Odziedziczone po Component)
FileOk

Występuje, gdy użytkownik kliknie przycisk Otwórz lub Zapisz w oknie dialogowym plik.

HelpRequest

Występuje, gdy użytkownik kliknie przycisk Pomoc w typowym oknie dialogowym.

(Odziedziczone po CommonDialog)

Dotyczy

Zobacz też