pondělí 11. srpna 2008

.NET C# Souborové operace s progress barem

K mému nemilému překvapení chybí v .NET operace pro kopírování/přesouvání souborů, ke kterým by šel pohodlně připojit nějaký progress bar s informací pro uživatele, jak dalece operace pokročila. Kopírování souborů lze udělat ručně, nebo se dají najít články o použití CopyFileEx z kernel32.dll v C#. Ovšem pro přesun souborů jsem nic rozumného nenašel. Přesun souboru se totiž někdy realizuje jako přejmenování, jindy jako kopírování a vymazání. To může trvat různě dlouho. Nakonec mne překvapil poměrně čerstvý (asi měsíc starý) článek na MSDN: http://msdn.microsoft.com/en-us/library/cc165446.aspx. Ten radí použít v C# třídu FileSystem z VisualBasicu (sic). Tato třída poskytuje při souborových operacích standartní windowsovská dialogová okna, což je pro mé účely postačující. Navíc si i nechá potvrdit přepsání nebo smazání souboru, umí i operovat s celými adresáři. Jestliže ale někdo potřebuje vlastní progress bar nebo jiný způsob informace o postupu souborové operace, tak má asi smůlu.

Poznámka: Pro zobrazní dialogů je potřeba u metod třídy FileSystem použít parametr Microsoft.VisualBasic.FileIO.UIOption.AllDialogs

Žádné komentáře: