FileAttribute lesen und setzen

string sFile = @"c:\Test.txt";

// FileAttribute lesen
FileAttributes fa = File.GetAttributes(sFile);

// FileAttribute testen
// Archive
if ((fa & FileAttributes.Archive) == FileAttributes.Archive)
{
}
// ReadOnly
if ((fa & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
}
// Hidden
if ((fa & FileAttributes.Hidden) == FileAttributes.Hidden)
{
}
// System
if ((fa & FileAttributes.System) == FileAttributes.System)
{
}

// FileAttribute zusätzlich anschalten
// Archive und ReadOnly zu den schon gesetzten anschalten
File.SetAttributes(sFile, fa | (FileAttributes.Archive | FileAttributes.ReadOnly));

// FileAttribute ausschließlich setzen
// nur Archive und ReadOnly anschalten
File.SetAttributes(sFile, FileAttributes.Archive | FileAttributes.ReadOnly);

// FileAttribute löschen
// alle löschen, auf Normal setzen
File.SetAttributes(sFile, FileAttributes.Normal);
// Archive und ReadOnly löschen
File.SetAttributes(sFile, fa & ~(FileAttributes.Archive | FileAttributes.ReadOnly));