Reklama

C# – Tipy, rady, návody – 15: Výběr souboru pomocí OpenFileDialog a SaveFileDialog

Úvod

Pokud vytváříme aplikaci, kde si uživatel bude sám vybírat cestu k nějakému souboru, tak je vhodné využít standardní volby k výběru, které nabízí Visual Studio. V tomto příspěvku se zaměříme pouze na samotný výběr souboru a ne na jeho zpracování.

Popis

Metody zpracování jsou závislé na typu souboru, a proto jich může být celá řada. K výběru souboru, který chceme otevřít, slouží komponenta “OpenFileDialog”. V případech, kdy uživatel vybírá cestu a název souboru k uložení, lze použít komponentu “SaveFileDialog”.
Jako první si vložíme komponenty “OpenFileDialog” a “SaveFileDialog” do projektu, viz Obr. 1.

Obr. 1: Formulář s vloženými komponentami

Obr. 1: Formulář s vloženými komponentami

Po vložení komponenty je vhodné nastavit filtry pro vstupní soubor. Do vlastnosti “Filter” vložíme jednotlivé typy souborů. Pro textové soubory by nastavení mohlo vypadat takto:
 
Text files (.txt)|*.txt|All Files (*.*)|*.*
 
Jednotlivé typy souboru se oddělují pomocí znaku “|”. První položka znamená název typu souboru “Text files (.txt)”, který se zobrazí uživateli. Druhá položka “*.txt” znamená příponu, kterou soubor musí obsahovat, aby byl zobrazen k výběru. Poslední položka, obvykle bývá “All Files (*.*)|*.*”, která umožní uživateli zobrazit všechny soubory.
 
Další zajímavou vlastností je “InitialDirectory”, kde lze nastavit výchozí složku pro výběr souboru. Můžeme ji nastavit například na: “D:\, C:\” apod., nebo třeba programově na poslední uloženou pozici souboru.
 
Pokud chcete umožnit vybrat více souborů najednou, slouží k tomu vlastnost “MultiSelect”, kterou nastavíme na “True”.
 
K vyvolání zobrazení dialogového okna pro výběr souboru slouží metoda “ShowDialog()”. Ukázku zobrazení dialogového okna lze vidět na Obr. 2. Po vyvolání dialogového okna budeme testovat, zda uživatel stisknul tlačítko “OK” pomocí následujícího kódu:

Obr. 2: Dialogové okno pro výběr souboru

Obr. 2: Dialogové okno pro výběr souboru

 
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{

… akce po výběru souboru
 
K získání cesty k souboru, který uživatel vybral, použijeme vlastnost “FileName” komponenty “OpenFileDialog”, viz:
 
string file = openFileDialog1.FileName;
 
Pokud je povolená možnost výběru více souborů, tak lze jednotlivé cesty k souborům zpracovat pomocí příkazu “foreach”, viz:
 
foreach(string currentPath in openFileDialog1.FileNames)
{
string file2 = currentPath
;
…Zpracování aktuálního souboru, který je umístěný na currentPath
}
 
Vybranou cestu k souboru lze dále použít pro jednotlivé metody ke zpracování souboru.
 
S vybranou cestou k souboru lze dále pracovat pomocí třídy “Path”, která je také ve jmenném prostoru “System.IO”. Tato třída obsahuje několik metod, které si ukážeme na vzorovém souboru umístěném na “D:\ test.txt”, viz Obr. 3:

Obr. 3: Zobrazení informací o souboru

Obr. 3: Zobrazení informací o souboru

 
GetFileName – slouží k získání názvu souboru i s příponou – test.txt
GetDirectoryName – slouží k získání cesty k souboru – D:\
GetExtension – slouží k získání přípony soubory – .txt
GetFileNameWithoutExtension – slouží k získání názvu souboru bez přípony – test
GetFullPath – slouží k získání celé cesty k souboru i s názvem a příponou – D:\ test.txt
GetPathRoot – slouží k získání kořenového adresáře – D:\
 
Podobným způsobem lze pracovat i s komponentou “SaveFileDialog”, která slouží k výběru souboru pro uložení.

 

Následující a předchozí příspěvek v kategorii:

 
Následující: C# – Tipy, rady, návody – 16: Automatické posunutí na konec textu v TextBoxu
Předchozí: C# – Tipy, rady, návody – 14: Zpracování události na stisk klávesy
 
Tajned facebook
 

Za případné chyby v textu, ve zdrojovém kódě, nebo ve schématickém zapojení se omlouváme.
AUTOŘI NEBEROU ŽÁDNOU ODPOVĚDNOST ZA PŘÍPADNÉ ÚJMY NA ZDRAVÍ ČI MAJETKU.