FileDialog Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 |
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) |