FileSystemInfo.Attributes Property
Updated: May 2010
Gets or sets the attributes for the current file or directory.
Assembly: mscorlib (in mscorlib.dll)
| Exception | Condition |
|---|---|
| FileNotFoundException |
The specified file does not exist. |
| DirectoryNotFoundException |
The specified path is invalid; for example, it is on an unmapped drive. |
| SecurityException |
The caller does not have the required permission. |
| ArgumentException |
The caller attempts to set an invalid file attribute. |
| IOException |
Refresh cannot initialize the data. |
The value of the Attributes property is pre-cached if the current instance of the FileSystemInfo object was returned from any of the following DirectoryInfo methods:
To get the latest value, call the Refresh method.
The value of this property is a combination of the archive, compressed, directory, hidden, offline, read-only, system, and temporary file attribute flags.
The following example demonstrates the Attributes property. This code example is part of a larger example provided for the FileSystemInfo class.
static void DisplayFileSystemInfoAttributes(FileSystemInfo fsi) { // Assume that this entry is a file. string entryType = "File"; // Determine if entry is really a directory if ((fsi.Attributes & FileAttributes.Directory) == FileAttributes.Directory ) { entryType = "Directory"; } // Show this entry's type, name, and creation date. Console.WriteLine("{0} entry {1} was created on {2:D}", entryType, fsi.FullName, fsi.CreationTime); }
-
FileIOPermission
for writing files and directories. Associated enumeration: FileIOPermissionAccess.Write Security action: Demand
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
You can avoid a call to File.Exists() or FileInfo.Exists() if you are also making use of the Attributes value: Check for FileInfo.Attributes == -1 as a simple existence check.
Example from a piece of code where I needed to know if a path was a file, directory, or nonexistent, after using this technique to improve performance:
var fi = new FileInfo(path);
FileAttributes attributes = fi.Attributes; // This forces a refresh from the filesystem.
if ((int)attributes != -1)
{
if ((attributes & FileAttributes.Directory) != FileAttributes.Directory)
{
// It's a file that exists
}
else
{
// It's a directory that exists
}
}
else
{
// Doesn't exist
}
- 5/4/2012
- erikmav
- 5/3/2012
- JeffB123