using System;
using System.IO;

namespace Zjištění_atributů_souboru
{
   class Program
   {
      [STAThread]
      static void Main(string[] args)
      {
         Console.Title = "Zjištění atributů souboru";

         string fileName = "c:\\pagefile.sys";

         /* Zjištění atributů souboru */
         try
         {
            // Vytvoření instance třídy FileInfo
            FileInfo fi = new FileInfo(fileName);

            // Odečtení atributů
            Console.WriteLine("Atributy souboru {0}", fileName);

            if ((fi.Attributes & FileAttributes.Archive) > 0)
            {
               Console.WriteLine("Archiv");
            }

            if ((fi.Attributes & FileAttributes.Compressed) > 0)
            {
               Console.WriteLine("Komprimovaný");
            }

            if ((fi.Attributes & FileAttributes.Device) > 0)
            {
                Console.WriteLine("Zařízení (Tento atribut je rezervován pro " +
                                  "budoucí použití)");

            }

            if ((fi.Attributes & FileAttributes.Encrypted) > 0)
            {
                Console.WriteLine("Zašifrovaný");
            }

            if ((fi.Attributes & FileAttributes.Hidden) > 0)
            {
                Console.WriteLine("Skrytý");
            }

            if ((fi.Attributes & FileAttributes.Normal) > 0)
            {
               Console.WriteLine("Normální soubor");
            }

            if ((fi.Attributes & FileAttributes.NotContentIndexed) > 0)
            {
                Console.WriteLine("Neindexovaný obsah");
            }

            if ((fi.Attributes & FileAttributes.Offline) > 0)
            {
               Console.WriteLine("Offline");
            }

            if ((fi.Attributes & FileAttributes.ReadOnly) > 0)
            {
                Console.WriteLine("Chráněný proti zápisu");
            }

            if ((fi.Attributes & FileAttributes.ReparsePoint) > 0)
            {
                Console.WriteLine("Soubor obsahuje reparse point (blok" +
                                  " uživtelem definovaných dat)");

            }

            if ((fi.Attributes & FileAttributes.SparseFile) > 0)
            {
               Console.WriteLine("Řídký soubor (s mnoha nulovými bajty)");
            }

            if ((fi.Attributes & FileAttributes.System) > 0)
            {
               Console.WriteLine("Systémový");
            }

            if ((fi.Attributes & FileAttributes.Temporary) > 0)
            {
                Console.WriteLine("Dočasný soubor");
            }
         }
         catch (IOException ex)
         {
            Console.WriteLine("Chyba při zjišťování atrobutů " +
              "souboru '{0}': {1}.", fileName, ex.Message);
         }

         Console.WriteLine();
         Console.WriteLine("Stiskni Enter");
         Console.ReadLine();
      }
   }
}
