FileDialog Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Visar en dialogruta där användaren kan välja en fil.
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
- Arv
- Härledda
Exempel
I följande kodexempel används implementeringen OpenFileDialog av FileDialog och illustrerar skapande, inställning av egenskaper och visning av dialogrutan. I exemplet används ShowDialog metoden för att visa dialogrutan och returnera DialogResult. Exemplet kräver ett formulär med ett Button placerat på det och det namnområde som System.IO lagts till i det.
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
Kommentarer
FileDialog är en abstrakt klass som innehåller vanligt beteende för klasserna OpenFileDialog och SaveFileDialog . Det är inte avsett att användas direkt men innehåller vanligt beteende för dessa två klasser. Du kan inte skapa en instans av FileDialog. Även om klassen deklareras som offentlig kan du inte ärva från den eftersom den innehåller interna abstrakta metoder. Om du vill skapa en dialogruta för att välja eller spara en fil använder du OpenFileDialog eller SaveFileDialog.
FileDialog är en modal dialogruta; När det visas blockerar det därför resten av programmet tills användaren har valt en fil. När en dialogruta visas modally kan inga indata (tangentbord eller musklickning) ske förutom objekt i dialogrutan. Programmet måste dölja eller stänga dialogrutan (vanligtvis som svar på någon användaråtgärd) innan indata till det anropande programmet kan ske.
Caution
När du använder klasser som härletts från FileDialog, till exempel OpenFileDialog och SaveFileDialog, undviker du att använda strängliteraler som innehåller absoluta sökvägar. Hämta i stället sökvägen dynamiskt med hjälp av en eller flera av de tekniker som beskrivs i följande tabell.
Om du vill göra det möjligt för användare att välja en mapp i stället för en fil använder du FolderBrowserDialog.
Beroende på vilken typ av program, hur data som är associerade med programmet lagras och orsaken till att komma åt filsystemet finns det många möjliga sätt på vilka du kan skapa en katalogsökväg. I följande tabell visas teknikerna för att skapa sökvägar dynamiskt.
| Sökväg eller programkategori | Klass och medlemmar att använda |
|---|---|
| Standardsökvägar för Windows, till exempel Programfiler, MyDocuments, Skrivbordet och så vidare | Klassen System.Environment är den mest kompletta källan för dessa, antingen via dess statiska metoder, till exempel SystemDirectory, eller via GetFolderPath -metoden, med hjälp av ett av de Environment.SpecialFolder uppräknade värdena. |
| Sökvägar relaterade till det aktuella programmet | Klassen Application har statiska medlemmar för att hämta vissa sökvägar, till exempel StartupPath, ExecutablePath, LocalUserAppDataPathoch CommonAppDataPath. Metoden GetTempPath för System.IO.Path returnerar sökvägen till den temporära mappen. Metoden GetCurrentDirectory för System.IO.Directory klassen returnerar programmets aktuella körkatalog. Egenskapen RootDirectory för DriveInfo klassen representerar den angivna enhetens rotkatalog. |
| Sökvägar som lagras som programinställningar | Få åtkomst till motsvarande egenskap för programinställningar för den omslutningsklass som härletts från ApplicationSettingsBase. Mer information finns i Programinställningar för Windows Forms. |
| Registerlagring | Vissa program lagrar kataloginformation i registret. Klassen Application har egenskaperna CommonAppDataPath och LocalUserAppDataPath som matchar ett RegistryKey värde. |
| ClickOnce-program | För ClickOnce-program använder du Application klassmedlemmar som UserAppDataPath, som returnerar en pekare till datakatalogen ClickOnce. Mer information finns i Åtkomst till lokala data och fjärrdata i ClickOnce-program. |
| Internationella program | För internationella program hämtar du den relativa sökvägsdelen från en strängresurs i ditt program med hjälp System.Resources.ResourceReader av klassen . Mer information om globalisering och lokalisering finns i avsnittet Globalisering och lokalisering. |
Observera att en fullständig sökväg kan byggas upp med hjälp av en eller flera av de beskrivna teknikerna. Metoden kan till exempel GetFolderPath användas för att hämta sökvägen till mappen MyDocuments, och sedan kan en programinställning användas för att lägga till en relativ underkatalogdel.
Klassen System.IO.Path innehåller statiska medlemmar för att hantera absoluta och relativa sökvägssträngar, medan System.IO.File klasserna och System.IO.Directory har statiska medlemmar som faktiskt manipulerar filer respektive kataloger.
Important
Om användaren av ditt program ändrar mappen i FileDialog, anges den aktuella arbetskatalogen FileDialogför ditt program till den plats som anges i . Om du vill förhindra detta anger du egenskapen RestoreDirectory till true.
Fält
| Name | Description |
|---|---|
| EventFileOk |
FileOk Äger händelsen. |
Egenskaper
| Name | Description |
|---|---|
| AddExtension |
Hämtar eller anger ett värde som anger om dialogrutan automatiskt lägger till ett tillägg till ett filnamn om användaren utelämnar tillägget. |
| AddToRecent |
Hämtar eller anger ett värde som anger om dialogrutan lägger till filen som öppnas eller sparas i den senaste listan. |
| AutoUpgradeEnabled |
Hämtar eller anger ett värde som anger om den här FileDialog-instansen automatiskt ska uppgradera utseende och beteende när den körs på Windows Vista. |
| CanRaiseEvents |
Hämtar ett värde som anger om komponenten kan generera en händelse. (Ärvd från Component) |
| CheckFileExists |
Hämtar eller anger ett värde som anger om dialogrutan visar en varning om användaren anger ett filnamn som inte finns. |
| CheckPathExists |
Hämtar eller anger ett värde som anger om dialogrutan visar en varning om användaren anger en sökväg som inte finns. |
| ClientGuid |
Hämtar eller anger GUID som ska associeras med det här dialogtillståndet. Vanligtvis sparas tillstånd som den senast besökta mappen och dialogrutans position och storlek baserat på namnet på den körbara filen. Genom att ange ett GUID kan ett program ha olika bevarade tillstånd för olika versioner av dialogrutan i samma program (till exempel en importdialogruta och en öppen dialogruta). Den här funktionen är inte tillgänglig om ett program inte använder visuella format eller om AutoUpgradeEnabled är inställt på |
| Container |
Hämtar som IContainer innehåller Component. (Ärvd från Component) |
| CustomPlaces |
Hämtar samlingen anpassade platser för den här FileDialog instansen. |
| DefaultExt |
Hämtar eller anger standardfilnamnstillägget. |
| DereferenceLinks |
Hämtar eller anger ett värde som anger om dialogrutan returnerar platsen för filen som refereras av genvägen eller om den returnerar platsen för genvägen (.lnk). |
| DesignMode |
Hämtar ett värde som anger om det Component för närvarande är i designläge. (Ärvd från Component) |
| Events |
Hämtar listan över händelsehanterare som är kopplade till den här Component. (Ärvd från Component) |
| FileName |
Hämtar eller anger en sträng som innehåller filnamnet som valts i fildialogrutan. |
| FileNames |
Hämtar filnamnen för alla markerade filer i dialogrutan. |
| Filter |
Hämtar eller anger den aktuella filtersträngen för filnamn, som avgör vilka alternativ som visas i rutan "Spara som filtyp" eller "Filer av typen" i dialogrutan. |
| FilterIndex |
Hämtar eller anger indexet för det filter som för närvarande är markerat i fildialogrutan. |
| InitialDirectory |
Hämtar eller anger den första katalogen som visas i dialogrutan fil. |
| Instance |
Hämtar Win32-instanshandtaget för programmet. |
| OkRequiresInteraction |
Hämtar eller anger ett värde som anger om ok-knappen i dialogrutan är inaktiverad tills användaren navigerar i vyn eller redigerar filnamnet (om tillämpligt). |
| Options |
Hämtar värden för att initiera FileDialog. |
| RestoreDirectory |
Hämtar eller anger ett värde som anger om dialogrutan återställer katalogen till den tidigare valda katalogen innan den stängs. |
| ShowHelp |
Hämtar eller anger ett värde som anger om hjälpknappen visas i fildialogrutan. |
| ShowHiddenFiles |
Hämtar eller anger ett värde som anger om dialogrutan visar dolda filer och systemfiler. |
| ShowPinnedPlaces |
Hämtar eller anger ett värde som anger om de objekt som visas som standard i vyns navigeringsfönster visas. |
| Site |
Hämtar eller ställer in ISite i Component. (Ärvd från Component) |
| SupportMultiDottedExtensions |
Hämtar eller anger om dialogrutan stöder visning och sparande av filer som har flera filnamnstillägg. |
| Tag |
Hämtar eller anger ett objekt som innehåller data om kontrollen. (Ärvd från CommonDialog) |
| Title |
Hämtar eller anger fildialogrutans rubrik. |
| ValidateNames |
Hämtar eller anger ett värde som anger om dialogrutan endast accepterar giltiga Win32-filnamn. |
Metoder
| Name | Description |
|---|---|
| CreateObjRef(Type) |
Skapar ett objekt som innehåller all relevant information som krävs för att generera en proxy som används för att kommunicera med ett fjärrobjekt. (Ärvd från MarshalByRefObject) |
| Dispose() |
Släpper alla resurser som används av Component. (Ärvd från Component) |
| Dispose(Boolean) |
Släpper de ohanterade resurser som används av Component och släpper eventuellt de hanterade resurserna. (Ärvd från Component) |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetLifetimeService() |
Föråldrad.
Hämtar det aktuella livslängdstjänstobjektet som styr livslängdsprincipen för den här instansen. (Ärvd från MarshalByRefObject) |
| GetService(Type) |
Returnerar ett objekt som representerar en tjänst som tillhandahålls av Component eller av dess Container. (Ärvd från Component) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| HookProc(IntPtr, Int32, IntPtr, IntPtr) |
Definierar den vanliga dialogrutekrokproceduren som åsidosätts för att lägga till specifika funktioner i fildialogrutan. |
| InitializeLifetimeService() |
Föråldrad.
Hämtar ett tjänstobjekt för livslängd för att styra livslängdsprincipen för den här instansen. (Ärvd från MarshalByRefObject) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| MemberwiseClone(Boolean) |
Skapar en ytlig kopia av det aktuella MarshalByRefObject objektet. (Ärvd från MarshalByRefObject) |
| OnFileOk(CancelEventArgs) |
Genererar händelsen FileOk . |
| OnHelpRequest(EventArgs) |
Genererar händelsen HelpRequest . (Ärvd från CommonDialog) |
| OwnerWndProc(IntPtr, Int32, IntPtr, IntPtr) |
Definierar den procedur för ägarfönster som åsidosätts för att lägga till specifika funktioner i en gemensam dialogruta. (Ärvd från CommonDialog) |
| Reset() |
Återställer alla egenskaper till deras standardvärden. |
| RunDialog(IntPtr) |
Anger en gemensam dialogruta. |
| ShowDialog() |
Kör en gemensam dialogruta med en standardägare. (Ärvd från CommonDialog) |
| ShowDialog(IWin32Window) |
Kör en gemensam dialogruta med den angivna ägaren. (Ärvd från CommonDialog) |
| ToString() |
Innehåller en strängversion av det här objektet. |
Händelser
| Name | Description |
|---|---|
| Disposed |
Inträffar när komponenten tas bort av ett anrop till Dispose() metoden. (Ärvd från Component) |
| FileOk |
Inträffar när användaren klickar på knappen Öppna eller Spara i en fildialogruta. |
| HelpRequest |
Inträffar när användaren klickar på hjälpknappen i en gemensam dialogruta. (Ärvd från CommonDialog) |