AlphaFS Specifies the type of a file. The type of the specified file is unknown. The specified file is a disk file. The specified file is a character file, typically an LPT device or a console. The specified file is a socket, a named pipe, or an anonymous pipe. Unused. Represents information about free and used space on a disk. Initializes the structure The free bytes available The total number of bytes The total number of free bytes Indicates whether this instance and a specified object are equal. Another object to compare to. true if and this instance are the same type and represent the same value; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Implements the operator ==. A. B. The result of the operator. Implements the operator !=. A. B. The result of the operator. Gets or sets the free bytes available. The free bytes available. Gets or sets the total number of bytes. The total number of bytes. Gets or sets the total number of free bytes. The total number of free bytes. Represents information about a volume. Gets the name of the volume. The name of the volume. Gets a value indicating whether the file system preserves the case of file names when it places a name on disk.. true if the file system preserves the case of file names when it places a name on disk.]; otherwise, false. Gets a value indicating whether the file system supports case-sensitive file names.. true if the file system supports case-sensitive file names; otherwise, false. Gets a value indicating whether the file system supports file-based compression. true if the file system supports file-based compression; otherwise, false. Gets a value indicating whether the file system supports named streams. true if the file system supports named streams; otherwise, false. Gets a value indicating whether the file system preserves and enforces access control lists (ACL). true if the file system preserves and enforces access control lists (ACL); otherwise, false. For example, the NTFS file system preserves and enforces ACLs, and the FAT file system does not. Gets a value indicating whether the specified volume is read-only.. true if the specified volume is read-only.; otherwise, false. This value is not supported on Windows 2000/NT and Windows Me/98/95. Gets a value indicating whether the file system supports the Encrypted File System (EFS). true if the file system supports the Encrypted File System (EFS); otherwise, false. Gets a value indicating whether the file system supports object identifiers. true if the file system supports object identifiers; otherwise, false. Gets a value indicating whether he file system supports re-parse points. true if he file system supports re-parse points; otherwise, false. Gets a value indicating whether the file system supports sparse files. true if the file system supports sparse files; otherwise, false. Gets a value indicating whether the file system supports Unicode in file names as they appear on disk. true if the file system supports Unicode in file names as they appear on disk; otherwise, false. Gets a value indicating whether the specified volume is a compressed volume, for example, a DoubleSpace volume. true if the specified volume is a compressed volume; otherwise, false. Gets a value indicating whether the file system supports disk quotas. true if the file system supports disk quotas; otherwise, false. Gets the volume serial number that the operating system assigns when a hard disk is formatted. The volume serial number that the operating system assigns when a hard disk is formatted. Gets the maximum length of a file name component that the file system supports. The maximum length of a file name component that the file system supports. Gets the name of the file system, for example, the FAT file system or the NTFS file system. The name of the file system. Specifies how the operating system should open a file. None of the options specified. The file should be archived. Applications use this attribute to mark files for backup or removal. The file or directory is encrypted. For a file, this means that all data in the file is encrypted. For a directory, this means that encryption is the default for newly created files and subdirectories. The file is hidden. Do not include it in an ordinary directory listing. The file does not have other attributes set. This attribute is valid only if used alone. The data of a file is not immediately available. This attribute indicates that file data is physically moved to offline storage. This attribute is used by Remote Storage, the hierarchical storage management software. Applications should not arbitrarily change this attribute. The file is read only. Applications can read the file, but cannot write to or delete it. The file is part of or used exclusively by an operating system. The file is being used for temporary storage. The file is being opened or created for a backup or restore operation. The system ensures that the calling process overrides file security checks when the process has SE_BACKUP_NAME and SE_RESTORE_NAME privileges. You must set this flag to obtain a handle to a directory. A directory handle can be passed to some functions instead of a file handle. The file is to be deleted immediately after all of its handles are closed, which includes the specified handle and any other open or duplicated handles. If there are existing open handles to a file, the call fails unless they were all opened with the share mode. Subsequent open requests for the file fail, unless the share mode is specified. There are strict requirements for successfully working with files opened with the flag, for details see the section on "File Buffering" in the online MSDN documentation. The file data is requested, but it should continue to be located in remote storage. It should not be transported back to local storage. This flag is for use by remote storage systems. Normal reparse point processing will not occur; an attempt to open the reparse point will be made. When a file is opened, a file handle is returned, whether or not the filter that controls the reparse point is operational. See MSDN documentation for more information. The file or device is being opened or created for asynchronous I/O. Access will occur according to POSIX rules. This includes allowing multiple files with names, differing only in case, for file systems that support that naming. Use care when using this option, because files created with this flag may not be accessible by applications that are written for MS-DOS or 16-bit Windows. Access is intended to be random. The system can use this as a hint to optimize file caching. Access is intended to be sequential from beginning to end. The system can use this as a hint to optimize file caching. Write operations will not go through any intermediate cache, they will go directly to disk. Provides the base class for both FileInfo and DirectoryInfo objects. Indicator of file existence. It refreshes each time Refresh() has been called. Represents extended file information. Represents the fully qualified path of the directory or file. Notes to Inheritors: Classes derived from FileSystemInfo can use the FullPath field to determine the full path of the object being manipulated. The path originally specified by the user, whether relative or absolute. Deletes a file or directory. Refreshes the state of the object. FileSystemInfo.Refresh takes a snapshot of the file from the current file system. Refresh cannot correct the underlying file system even if the file system returns incorrect or outdated information. This can happen on platforms such as Windows 98. Calls must be made to Refresh before attempting to get the attribute information, or the information will be outdated. Returns a String that represents the current Object. String Throws the does not exists exception. Initializes the specified file name. Name of the file. Gets a full path string representing the file's parent directory. A string representing the parent directory full path. Gets or sets the of the current . Gets or sets the creation time of the current object. The creation date and time of the current System.IO.FileSystemInfo object. Gets or sets the creation time, in coordinated universal time (UTC), of the current FileSystemInfo object. Gets a value indicating whether the file or directory exists. The Extension property returns the FileSystemInfo extension, including the period (.). For example, for a file c:\NewFile.txt, this property returns ".txt". A string containing the name with full path. Gets the system info. The system info. Gets or sets the time the current file or directory was last accessed. When first called, calls Refresh and returns the cached information on APIs to get attributes and so on. On subsequent calls, you must call Refresh to get the latest copy of the information. If the file described in the object does not exist, this property will return 12:00 midnight, January 1, 1601 A.D. (C.E.) Coordinated Universal Time (UTC), adjusted to local time. Gets or sets the time, in coordinated universal time (UTC), that the current file or directory was last accessed When first called, calls Refresh and returns the cached information on APIs to get attributes and so on. On subsequent calls, you must call Refresh to get the latest copy of the information. If the file described in the object does not exist, this property will return 12:00 midnight, January 1, 1601 A.D. (C.E.) Coordinated Universal Time (UTC), adjusted to local time. Gets or sets the time when the current file or directory was last written to. Gets or sets the time, in coordinated universal time (UTC), when the current file or directory was last written to. For files, gets the name of the file. For directories, gets the name of the last directory in the hierarchy if a hierarchy exists. Otherwise, the Name property gets the name of the directory. For a directory, Name returns only the name of the parent directory, such as Dir, not c:\Dir. For a subdirectory, Name returns only the name of the subdirectory, such as Sub1, not c:\Dir\Sub1. For a file, Name returns only the file name and file name extension, such as MyFile.txt, not c:\Dir\Myfile.txt. Defines values that are used with the GetFileAttributes function to specify the information level of the returned data. The GetFileAttributes function retrieves a standard set of attribute information. The data is returned in a WIN32_FILE_ATTRIBUTE_DATA structure. One greater than the maximum value. Valid values for this enumeration will be less than this value. Note: for some marshalling reason WIN32_FIND_DATA whould be declared as class not a struct. Reserved for future use Class used to represent the SECURITY_ATTRIBUES native win32 structure. It provides initialization function from an ObjectSecurity object. Initializes the SecurityAttributes structure from an instance of . A handle that will refer to the memory allocated by this object for storage of the security descriptor. As long as this object is used, the memory handle should be kept alive, and afterwards it should be disposed as soon as possible. The security descriptor to assign to this object. This parameter may be . This value is not supported until Windows Server 2008 R2 and Windows 7. A representation of a path, providing convenient access to the individual components of the path. Note that no methods in this class verifies whether the path actually exists or not. Initializes a new instance of the class. The path. is The path is not a legal path in the Win32 file system. Initializes a new instance of the class specifying whether wildcards should be accepted or not. The path. if set to true wildcards are allowed in the file name part of the path. If set to false, wildcards are not allowed and an will be thrown if they are present. is Note that under no circumstances will this class accept wildcards in the directory part of the path, only in the file-name, i.e. the component after the last backslash or separator. Extended length unicode paths (also referred to as long paths) (those starting with \\?\) will not be parsed for wildcards etc., regardless of the setting of this parameter. In such a path any character is valid and backslashes alone are considered to be separators. Initializes a new instance of the class. The path. The indices. Position of the beginning of the file extension in the path. Retrieves the full long (or extended) unicode version of the path represented by this instance. This method takes care of different path conversions to be usable in Unicode variants of the Win32 funcitons (which are internally used throughout AlphaFS). Regular paths are changed like the following: C:\Somewhere\Something.txt \\?\C:\Somewhere\Something.txt \\Somewhere\Something.txt \\?\UNC\Somewhere\Something.txt Already processed paths are preserved untouched so to avoid mistakes of double prefixing. If the path represented by this instance is not an absolute path, or is not rooted, the path of the current directory (and drive) is combined with this path to form an absolute path. The long or extended unicode version of the specified path. Gets the full absolute path of the path represented by this instance. This is done by "applying" the path to the current directory if the path does not contain a root, or the volume of the current directory if the path does not contain any drive information. The full absolute path. Returns a that represents the current . A that represents the current . Performs a lexiographical comparison of the string representations of this and the other path, ignoring case. A to compare with this object. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the parameter.Zero This object is equal to . Greater than zero This object is greater than . Performs a lexiographical comparison for equality of the string representations of this and the other path, ignoring case. An object to compare with this object. true if the current object is equal to the parameter; otherwise, false. Performs a lexiographical comparison for equality of the string representations of this and the other path, ignoring case. The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Combines two paths. The first path. The second path. A string containing the combined paths. If one of the specified paths is a zero-length string, this method returns the other path. If path2 contains an absolute path, this method returns path2. Combines two paths. The first path. The second path. A string containing the combined paths. If one of the specified paths is a zero-length string, this method returns the other path. If path2 contains an absolute path, this method returns path2. Implements the operator ==. The path1. The path2. The result of the operator. Implements the operator !=. The path1. The path2. The result of the operator. Implements the operator <. The path1. The path2. The result of the operator. Implements the operator >. The path1. The path2. The result of the operator. Retrieves the parent directory of the specified path, including both absolute and relative paths. The parent directory, or if path is the root directory, including the root of a UNC server or share name. Gets the full normalized path, with a trailing backslash if the path denotes a directory. The full normalized path, with a trailing backslash if the path denotes a directory. Gets the full normalized path. The full path. Gets the file name part of the path. The file name part of the path, or an empty string if the path does not contain a file name. Gets the root of the path. The root of the path, which may be a drive (eg. "C:\"), a remote computer as part of an UNC path (eg. "\\OtherComputer\"), a unique volume name (eg. "\\?\Volume{c00fa7c5-63eb-11dd-b6ed-806e6f6e6963}\") or a single directory separator ("\") if no drive or volume is present in the path. If does not contain any root, an empty string is returned. Gets a value indicating whether the path is rooted. true if this instance is rooted; otherwise, false. Gets a value indicating whether this instance has file name. true if this instance has file name; otherwise, false. Gets the extension of the file name of this path. The extension of the file name of this path, or an empty string if the path does not contain a file name or the file name does not have an extension. Gets a value indicating whether the file name in this path has an extension. true if the file name in this path has an extension; otherwise, false. Gets the file name without extension. The file name without extension or an empty string if the path does not contain a file name. Returns the directory information for the path with a trailing directory separator. The name of the suffixed directory with a trailing directory separator. Returns the directory information for the path without the root information, and with a trailing backslash. The path without the root and file name part (if any) and with a trailing backslash. Returns the directory information for the path. The path without the file name part (if any). Returns the directory information for the path with the root stripped off. The path without the root and file name part (if any). Gets a list exposing the individual components of the directory part of this path. The directory components of this path. Determines the index of a specific item in the . The object to locate in the . The index of if found in the list; otherwise, -1. Inserts an item to the at the specified index. The zero-based index at which should be inserted. The object to insert into the . is not a valid index in the . The is read-only. Removes the item at the specified index. The zero-based index of the item to remove. is not a valid index in the . The is read-only. Adds an item to the . The object to add to the . The is read-only. Removes all items from the . The is read-only. Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Copies the elements of the to an , starting at a particular index. The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. The zero-based index in at which copying begins. is null. is less than 0. is multidimensional.-or- is equal to or greater than the length of .-or-The number of elements in the source is greater than the available space from to the end of the destination . Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . The is read-only. Returns an enumerator that iterates through the collection. A that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Gets the at the specified index. The component of the directory at the specified index If is out of range. Gets the number of elements contained in the . The number of elements contained in the . Gets a value indicating whether the is read-only. true Removes a reference to the parent directory ("..") if possible. This must be called *before* the reference to the parent directory has been added. true if the reference was removed, and false if it was kept. Represents the encryption status of the specified file. The file can be encrypted. The file is encrypted. The file is a read-only file. The file is a root directory. Root directories cannot be encrypted. The file is a system file. System files cannot be encrypted. The file is a system directory. System directories cannot be encrypted. The file system does not support file encryption. The encryption status is unknown. The file may be encrypted. Reserved for future use. The exception that is thrown when an attempt to create a directory or file that already exists was made. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The data for serializing or deserializing the object. The source and destination for the object. The requested operation could not be completed because the device was not ready. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The data for serializing or deserializing the object. The source and destination for the object. The exception that is thrown when an attempt to create a directory or file that already exists was made. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The data for serializing or deserializing the object. The source and destination for the object. It is too late to perform the requested operation, since the Transaction has already been aborted. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The info. The context. The function attempted to use a name that is reserved for use by another transaction. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The info. The context. IntPtr wrapper which can be used as result of Marshal.AllocHGlobal operation. Calls Marshal.FreeHGlobal when disposed or finalized. Creates new instance with zero IntPtr Copies data from a one-dimensional, managed 8-bit unsigned integer array to the unmanaged memory pointer referenced by this instance- The one-dimensional array to copy from. The zero-based index into the array where Copy should start. The number of array elements to copy. Called when object is disposed or finalized. Represents information retrieved by . Gets the file attributes. The file attributes. Gets a structure that specified when a file or directory was created. A structure that specified when a file or directory was created. Gets a structure. For a file, the structure specifies the last time that a file is read from or written to. For a directory, the structure specifies when the directory is created. For both files and directories, the specified date is correct, but the time of day is always set to midnight. If the underlying file system does not support the last access time, this member is zero (0). A structure that specified when a file was last written to or the directory created. Gets a structure. For a file, the structure specifies the last time that a file is written to. For a directory, the structure specifies when the directory is created. If the underlying file system does not support the last access time, this member is zero (0). A structure that specified when a file was last written to or the directory created. Gets the the serial number of the volume that contains a file. The serial number of the volume that contains a file. Gets the size of the file. The size of the file. Gets the number of links to this file. For the FAT file system this member is always 1. For the NTFS file system, it can be more than 1. The number of links to this file. Gets the unique identifier associated with the file. The identifier and the volume serial number uniquely identify a file on a single computer. To determine whether two open handles represent the same file, combine the identifier and the volume serial number for each file and compare them. The unique identifier of the file. Defines constants for read, write, or read/write access to a file. This enumeration has a attribute that allows a bitwise combination of its member values. No access to the file. Read access to the file. Data can be read from the file. Combine with Write for read/write access. Write access to the file. Data can be written to the file. Combine with Read for read/write access. Read and write access to the file. Data can be written to and read from the file. Represents a wrapper class for a handle used by the FindFirstFile/FindNextFile methods of the Win32 API Initializes a new instance of the class. Initializes a new instance of the class. The handle. if set to true [owns handle]. When overridden in a derived class, executes the code required to free the handle. true if the handle is released successfully; otherwise, in the event of a catastrophic failure, false. In this case, it generates a ReleaseHandleFailed Managed Debugging Assistant. Exposes instance methods for creating, moving, and enumerating through directories and subdirectories. This class cannot be inherited. Initializes a new instance of the class on the specified dirPath. A string specifying the path on which to create the DirectoryInfo. Refreshes the state of the object. FileSystemInfo.Refresh takes a snapshot of the file from the current file system. Refresh cannot correct the underlying file system even if the file system returns incorrect or outdated information. This can happen on platforms such as Windows 98. Calls must be made to Refresh before attempting to get the attribute information, or the information will be outdated. Deletes a file or directory. Deletes this instance of a DirectoryInfo, specifying whether to delete subdirectories and files. true to remove directories, subdirectories, and files in path; otherwise, false. If the DirectoryInfo has no files or subdirectories, this method deletes the DirectoryInfo even if recursive is false. Attempting to delete a DirectoryInfo that is not empty when recursive is false throws an IOException. For a list of common I/O tasks, see Common I/O Tasks. Deletes this instance of a DirectoryInfo, specifying whether to delete subdirectories and files. true to remove directories, subdirectories, and files in path; otherwise, false. if set to true ignores read only attribute of files and directories. If the DirectoryInfo has no files or subdirectories, this method deletes the DirectoryInfo even if recursive is false. Attempting to delete a DirectoryInfo that is not empty when recursive is false throws an IOException. For a list of common I/O tasks, see Common I/O Tasks. Returns the original path that was passed by the user. Returns the original path that was passed by the user. Gets a DirectorySecurity object that encapsulates the access control list (ACL) entries for the directory described by the current DirectoryInfo object. A DirectorySecurity object that encapsulates the access control rules for the directory. Gets a DirectorySecurity object that encapsulates the specified type of access control list (ACL) entries for the directory described by the current DirectoryInfo object. One of the AccessControlSections values that specifies the type of access control list (ACL) information to receive. A DirectorySecurity object that encapsulates the access control rules for the file described by the path parameter. Applies access control list (ACL) entries described by a DirectorySecurity object to the directory described by the current DirectoryInfo object. A DirectorySecurity object that describes an ACL entry to apply to the directory described by the path parameter. Returns the subdirectories of the current directory. An array of DirectoryInfo objects. If there are no subdirectories, this method returns an empty array. This method is not recursive. Returns an array of directories in the current DirectoryInfo matching the given search criteria. The search string, such as "System*", used to search for all directories beginning with the word "System". An array of type DirectoryInfo matching searchPattern. Wildcards are permitted. For example, the searchPattern string "*t" searches for all directory names in path ending with the letter "t". The searchPattern string "s*" searches for all directory names in path beginning with the letter "s". The string ".." can only be used in searchPattern if it is specified as a part of a valid directory name, such as in the directory name "a..b". It cannot be used to move up the directory hierarchy. If there are no subdirectories, or no subdirectories match the searchPattern parameter, this method returns an empty array. For a list of common I/O tasks, see Common I/O Tasks. Returns an array of directories in the current DirectoryInfo matching the given search criteria and using a value to determine whether to search subdirectories. The search string, such as "System*", used to search for all directories beginning with the word "System". One of the values of the SearchOption enumeration that specifies whether the search operation should include only the current directory or should include all subdirectories. An array of type DirectoryInfo matching searchPattern. Wildcards are permitted. For example, the searchPattern string "*t" searches for all directory names in path ending with the letter "t". The searchPattern string "s*" searches for all directory names in path beginning with the letter "s". The string ".." can only be used in searchPattern if it is specified as a part of a valid directory name, such as in the directory name "a..b". It cannot be used to move up the directory hierarchy. If there are no subdirectories, or no subdirectories match the searchPattern parameter, this method returns an empty array. For a list of common I/O tasks, see Common I/O Tasks. Returns a file list from the current directory. An array of type FileInfo. Returns a file list from the current directory matching the given searchPattern. The search string, such as "*.txt". An array of type FileInfo. Returns a file list from the current directory matching the given searchPattern and using a value to determine whether to search subdirectories. The search string, such as "System*", used to search for all directories beginning with the word "System". One of the values of the SearchOption enumeration that specifies whether the search operation should include only the current directory or should include all subdirectories. An array of type FileInfo. The following wildcard specifiers are permitted in searchPattern: "*" and "?". The order of the returned file names is not guaranteed; use the Sort()()() method if a specific sort order is required. Wildcards are permitted. For example, the searchPattern string "*.txt" searches for all file names having an extension of "txt". The searchPattern string "s*" searches for all file names beginning with the letter "s". If there are no files, or no files that match the searchPattern string in the DirectoryInfo, this method returns an empty array. Returns an array of strongly typed FileSystemInfo entries representing all the files and subdirectories in a directory. An array of strongly typed FileSystemInfo entries. This method is not recursive. For subdirectories, the FileSystemInfo objects returned by this method can be cast to the derived class DirectoryInfo. Use the FileAttributes value returned by the FileSystemInfo.Attributes property to determine whether the FileSystemInfo represents a file or a directory. Wild cards are permitted. For example, the searchPattern string "*t" searches for all directory names in path ending with the letter "t". The searchPattern string "s*" searches for all directory names in path beginning with the letter "s". The string ".." can only be used in searchPattern if it is specified as a part of a valid directory name, such as in the directory name "a..b". It cannot be used to move up the directory hierarchy. If there are no files or directories, or no files or directories that match the searchPattern string in the DirectoryInfo, this method returns an empty array. For a list of common I/O tasks, see Common I/O Tasks. Retrieves an array of strongly typed FileSystemInfo objects representing the files and subdirectories matching the specified search criteria. The search string, such as "System*", used to search for all directories beginning with the word "System". An array of strongly typed FileSystemInfo objects matching the search criteria. This method is not recursive. For subdirectories, the FileSystemInfo objects returned by this method can be cast to the derived class DirectoryInfo. Use the FileAttributes value returned by the FileSystemInfo.Attributes property to determine whether the FileSystemInfo represents a file or a directory. Wild cards are permitted. For example, the searchPattern string "*t" searches for all directory names in path ending with the letter "t". The searchPattern string "s*" searches for all directory names in path beginning with the letter "s". The string ".." can only be used in searchPattern if it is specified as a part of a valid directory name, such as in the directory name "a..b". It cannot be used to move up the directory hierarchy. If there are no files or directories, or no files or directories that match the searchPattern string in the DirectoryInfo, this method returns an empty array. For a list of common I/O tasks, see Common I/O Tasks. Moves a DirectoryInfo instance and its contents to a new path. The name and path to which to move this directory. The destination cannot be directory with the identical name. It can be an existing directory to which you want to add this directory as a subdirectory. This method throws an IOException if, for example, you try to move c:\mydir to c:\public, and c:\public already exists. You must specify "c:\\public\\mydir" as the destDirName parameter, or specify a new directory name such as "c:\\newdir". This method permits moving a directory to a read-only directory. The read/write attribute of neither directory is affected. For a list of common I/O tasks, see Common I/O Tasks. Gets a value indicating whether the file or directory exists. true if the file exists; otherwise, false. Gets the name of the last directory in the hierarchy if a hierarchy exists. Otherwise, the Name property gets the name of the directory. For a directory, Name returns only the name of the parent directory, such as Dir, not c:\Dir. For a subdirectory, Name returns only the name of the subdirectory, such as Sub1, not c:\Dir\Sub1. Gets the parent directory of a specified subdirectory. The parent directory, or nullNothingnullptra null reference (Nothing in Visual Basic) if the path is null or if the file path denotes a root (such as "\", "C:", or * "\\server\share"). Gets the root portion of a path. A DirectoryInfo object representing the root of a path. Callback used by MoveFile and CopyFile to report progress about the operation. The requested operation was made in the context of a transaction that is no longer active. The requested operation is not valid on the Transaction object in its current state. The function attempted to use a name that is reserved for use by another transaction. The remote server or share does not support transacted file operations. Static class providing utility methods for working with Microsoft Windows devices and volumes. Most of the methods in this class is simple convenience methods for native Win32 API-calls to make them simpler to use from managed languages. Retrieves the name of all volumes on the computer. Requires Windows Vista, Windows XP, or Windows 2000 Professional. An array containing the volume names on the computer. Retrieves the names of all volume mount points on the specified volume. Requires Windows Vista, Windows XP, or Windows 2000 Professional. The unique volume name of the volume to scan for volume mount points. A trailing backslash is required. The names of all volume mount points on the specified volume. Determines whether a disk drive containing the current directory is a removable, fixed, CD-ROM, RAM disk, or network drive. Requires Windows Vista, Windows XP, or Windows 2000 Professional. A value indicating whether a disk drive containing the current directory is a removable, fixed, CD-ROM, RAM disk, or network drive. Determines whether a disk drive is a removable, fixed, CD-ROM, RAM disk, or network drive. Requires Windows Vista, Windows XP, or Windows 2000 Professional. The root directory for the drive. A trailing backslash is required. A value indicating whether a disk drive is a removable, fixed, CD-ROM, RAM disk, or network drive. Returns an array of strings that specify valid drives in the system. Each string in the buffer may be used wherever a root directory is required, such as for the GetDriveType and GetDiskFreeSpace functions. An array of strings that specify valid drives in the system. Retrieves information about the file system and volume associated with the specified root directory. The root directory of the volume to be described. A instance describing the volume associatied with the specified root directory was not a valid volume name Retrieves information about the file system and volume associated with the specified . The file. A instance describing the volume associatied with the specified root directory was not a valid volume name Sets the label of a file system volume. The root directory of a file system volume. This is the volume the function will label. A trailing backslash is required. A name for the volume. or is a reference. Sets the label of the file system volume that is the root of the current directory A name for the volume. is a reference. Deletes the label of a file system volume. The root directory of a file system volume. This is the volume the function will label. A trailing backslash is required. is a reference. Deletes the label of the file system volume that is the root of the current directory Mounts the specified volume at the specified volume mount point. The volume mount point where the volume is to be mounted. This may be a root directory (X:\) or a directory on a volume (X:\mnt\). The string must end with a trailing backslash ('\'). The volume to be mounted. This string must be a unique volume name of the form "\\?\Volume{GUID}\" where GUID is a GUID that identifies the volume. The \\?\ turns off path parsing and is ignored as part of the path. For example, "\\?\C:\myworld\private" is seen as "C:\myworld\private". Unmounts the volume from the specified volume mount point. The volume mount point to be unmounted. This may be a root directory (X:\, in which case the DOS drive letter assignment is removed) or a directory on a volume (X:\mnt\). A trailing backslash is required. is It is not an error to attempt to unmount a volume from a volume mount point when there is no volume actually mounted at that volume mount point. Defines or redefines MS-DOS device names. A MS-DOS path string that will implement this device. An MS-DOS device name string specifying the device the function is defining or redefining. The device name string must not have a trailing colon, unless a drive letter (C or D, for example) is being defined or redefined. In no case is a trailing backslash allowed. true upon success, or false otherwise. Call Marshal.GetLastWin32Error() to receive additional error information if this method fails. Deletes an MS-DOS device name. An MS-DOS device name string specifying the device the function is deleting. The device name string must not have a trailing colon, unless a drive letter (C or D, for example) is being deleted. In no case is a trailing backslash allowed. true upon success, or false otherwise. Call Marshal.GetLastWin32Error() to receive additional error information if this method fails. Retrieves information about MS-DOS device names. The function can obtain the current mapping for a particular MS-DOS device name. The function can also obtain a list of all existing MS-DOS device names. The device. An MS-DOS device name string specifying the target of the query. The device name cannot have a trailing backslash. This parameter can be . In that case, the QueryDosDevice function will return an array of all existing MS-DOS device names See documentation on MSDN for the Windows QueryDosDevice() method for more information. Retreives a list of all existing MS-DOS device names. A list of all existing MS-DOS device names. This is equivalent to calling QueryDosDevice(null) See documentation on MSDN for the Windows QueryDosDevice() method for more information. Gets the shortest display name for the specified . The volume name. The shortest display name for the specified volume found, or if no display names were found. is a reference An error occured during a system call, such as the volume name specified was invalid or did not exist. This method basically returns the shortest string returned by Retrieves a list of path names for the specified volume name. The volume name. An array containing the path names for the specified volume. is a reference The volume name specified was invalid, did not exist or was not ready. For more information about this method see the MSDN documentation on GetVolumePathNamesForVolumeName(). Determines whether the specified volume name is a defined volume on the current computer. A string representing the path to a volume (eg. "C:\", "D:", "P:\Mountpoint\Backup", "\\?\Volume{c0580d5e-2ad6-11dc-9924-806e6f6e6963}\"). A trailing backslash is required. true if the specified volume is a defined volume; otherwise, false. The trailing backslash is optional is a reference Upon error retreiving the volume name Retrieves the unique volume name for the specified volume mount point or root directory. The path of a volume mount point (with or without a trailing backslash, "\") or a drive letter indicating a root directory (eg. "C:" or "D:\"). A trailing backslash is required. The unique volume name of the form "\\?\Volume{GUID}\" where GUID is the GUID that identifies the volume. is a reference is an empty string Upon error retreiving the volume name See the MSDN documentation on the method GetVolumeNameForVolumeMountPoint() for more information. Retrieves the unique name of the volume mount point where the specified path is mounted. The input path. Both absolute and relative file and directory names, for example ".", are acceptable in this path. If you specify a relative directory or file name without a volume qualifier, GetUniqueVolumeNameForPath returns the drive letter of the boot volume. A trailing backslash is required. The unique name of the volume mount point where the specified path is mounted See the MSDN documentation on the method GetVolumePathName() for more information. is a reference is an empty string Upon error retreiving the volume name Retreives the Win32 device name from the volume name Name of the volume. A trailing backslash is not allowed. The Win32 device name from the volume name Retrieves information about the amount of space that is available on a disk volume, which is the total amount of space, the total amount of free space, and the total amount of free space available to the user that is associated with the calling thread. A directory on the disk. If this parameter is NULL, the function uses the root of the current disk. If this parameter is a UNC name, it must include a trailing backslash, for example, "\\MyServer\MyShare\". This parameter does not have to specify the root directory on a disk. The function accepts any directory on a disk. The calling application must have FILE_LIST_DIRECTORY access rights for this directory. A object containing the requested information. Represents a wrapper class for a handle used by the FindFirstVolume/FindNextVolume methods of the Win32 API Initializes a new instance of the class. Initializes a new instance of the class. The handle. if set to true [owns handle]. When overridden in a derived class, executes the code required to free the handle. true if the handle is released successfully; otherwise, in the event of a catastrophic failure, false. In this case, it generates a ReleaseHandleFailed Managed Debugging Assistant. A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Looks up a localized string similar to AlphaFS Internal Error: . Looks up a localized string similar to Argument must not be empty. Looks up a localized string similar to Incorrectly implemented function attempting to generate exception from successful operation. . Looks up a localized string similar to Buffer is not large enough for the requested operation.. Looks up a localized string similar to Count must not be negative.. Looks up a localized string similar to Directory not empty. Looks up a localized string similar to Directory not found. Looks up a localized string similar to Error code was: {0}. Looks up a localized string similar to Creating hard-links on non-NTFS partitions is not supported. Looks up a localized string similar to Illegal path: {0}. Looks up a localized string similar to Incomplete header read.. Looks up a localized string similar to Invalid directory name. Looks up a localized string similar to Invalid file name: {0}. Looks up a localized string similar to Invalid handle. Looks up a localized string similar to Invalid search pattern. Looks up a localized string similar to Invalid security descriptor returned from system.. Looks up a localized string similar to Invalid transaction object. Looks up a localized string similar to Invalid transaction request. Looks up a localized string similar to The file or directory is not a reparse point. Looks up a localized string similar to Offset must not be negative.. Looks up a localized string similar to Path already exists. Looks up a localized string similar to This stream does not support seeking.. Looks up a localized string similar to Transactional conflict. Looks up a localized string similar to Transaction already aborted. Looks up a localized string similar to Transaction already committed. Looks up a localized string similar to Transaction not active. Looks up a localized string similar to Transaction not requested. Specifies the type of a symbolic link The symbolic link is absolute The symbolic link is relative The function should return one of the following values. Continue the copy operation. Cancel the copy operation and delete the destination file. Stop the copy operation. It can be restarted at a later time. Continue the copy operation, but stop invoking to report progress. The transaction handle associated with this operation is not valid. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The data for serializing or deserializing the object. The source and destination for the object. Used to enable one or more privileges. The privileges specified will be enabled during the lifetime of the instance. Users create an instance of this object in a using statement to ensure that it is properly disposed when the elevated privileges are no longer needed. Initializes a new instance of the class. This will enable the privileges specified (unless already enabled), and ensure that they are disabled again when the object is disposed. (Any privileges already enabled will not be disabled). The privilege to enable. Additional privileges to enable. Makes sure any privileges enabled by this instance are disabled. Gets the enabled privileges. Note that this might not contain all privileges specified to the constructor. Only the privileges actually enabled by this instance is returned. The enabled privileges. The move options for a file move operation. If the destination file name already exists, the function replaces its contents with the contents of the source file. This value cannot be used if either source or destination names a directory. If the file is to be moved to a different volume, the function simulates the move by using the CopyFile and DeleteFile functions. This value cannot be used with . The system does not move the file until the operating system is restarted. The system moves the file immediately after AUTOCHK is executed, but before creating any paging files. Consequently, this parameter enables the function to delete paging files from previous startups. This value can only be used if the process is in the context of a user who belongs to the administrators group or the LocalSystem account. This value cannot be used with . The function does not return until the file has actually been moved on the disk. Setting this value guarantees that a move performed as a copy and delete operation is flushed to disk before the function returns. The flush occurs at the end of the copy operation. This value has no effect if is set. Reserved for future use. The function fails if the source file is a link source, but the file cannot be tracked after the move. This situation can occur if the destination is a volume formatted with the FAT file system. The exception that is thrown when a pathname or filename is illegal. Initializes a new instance of the class. Initializes a new instance of the class. The path. Initializes a new instance of the class. The path. The inner exception. Initializes a new instance of the class. The data for serializing or deserializing the object. The source and destination for the object. Represents information about a symbolic link. Information about the target of a symbolic link or mount point. The substitute name The print name Gets the type of the link. The type of the link. The structure contains stream header data. Initializes a new instance of the class. The stream ID. The name. Gets the size of the data in the substream, in bytes. The size of the data in the substream, in bytes. Gets a string that specifies the name of the alternative data stream. A string that specifies the name of the alternative data stream. Gets the type of the data in the stream. The type of the data in the stream. Gets the attributes of the data to facilitate cross-operating system transfer. Attributes of the data to facilitate cross-operating system transfer. This object is used to enable a specific privilege for the currently running process during its lifetime. It should be disposed as soon as the elevated privilege is no longer needed. For more information see the documentation on AdjustTokenPrivileges on MSDN. Initializes a new instance of the class and enabling the specified privilege for the currently running process. The name of the privilege. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. In this case the privilege previously enabled will be disabled. Adjusts the privilege. if set to true the privilege will be enabled, otherwise disabled. The function attempted to use a name that is reserved for use by another transaction. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The info. The context. Attributes of data to facilitate cross-operating system transfer. Attribute set if the stream contains data that is modified when read. Allows the backup application to know that verification of data will fail. Stream contains security data (general attributes). Allows the stream to be ignored on cross-operations restore. This attribute applies only to backup stream of type . Reserved. This backup stream has no special attributes. The backup stream is part of a sparse file stream. This attribute applies only to backup stream of type , , and . Defines the access rights to use when creating access and audit rules. This enumeration has a attribute that allows a bitwise combination of its member values. Specifies the right to open and copy folders or files as read-only. This right includes the right, right, right, and right. Specifies the right to create folders and files, and to add or remove data from files. This right includes the right, right, right, and right. Specifies the right to open and copy folders or files as read-only, and to run application files. This right includes the right and the right. Specifies the right to read, write, list folder contents, delete folders and files, and run application files. This right includes the right, the right, and the right. Specifies the right to open and copy a file or folder. This does not include the right to read file system attributes, extended file system attributes, or access and audit rules. Specifies the right to read the contents of a directory. Specifies the right to open and write to a file or folder. This does not include the right to open and write file system attributes, extended file system attributes, or access and audit rules. Specifies the right to create a file. Specifies the right to append data to the end of a file. Specifies the right to create a folder. Specifies the right to open and copy extended file system attributes from a folder or file. For example, this value specifies the right to view author and content information. This does not include the right to read data, file system attributes, or access and audit rules. Specifies the right to open and write extended file system attributes to a folder or file. This does not include the ability to write data, attributes, or access and audit rules. Specifies the right to run an application file. Specifies the right to list the contents of a folder and to run applications contained within that folder. Specifies the right to delete a folder and any files contained within that folder. Specifies the right to open and copy file system attributes from a folder or file. For example, this value specifies the right to view the file creation or modified date. This does not include the right to read data, extended file system attributes, or access and audit rules. Specifies the right to open and write file system attributes to a folder or file. This does not include the ability to write data, extended attributes, or access and audit rules. Specifies the right to delete a folder or file. Specifies the right to open and copy access and audit rules from a folder or file. This does not include the right to read data, file system attributes, and extended file system attributes. Specifies the right to change the security and audit rules associated with a file or folder. Specifies the right to change the owner of a folder or file. Note that owners of a resource have full access to that resource. Specifies whether the application can wait for a file handle to synchronize with the completion of an I/O operation. Specifies the right to exert full control over a folder or file, and to modify access control and audit rules. This value represents the right to do anything with a file and is the combination of all rights in this enumeration except for The access right controls the ability to get or set the SACL in an object's security descriptor. The system grants this access right only if the privilege is enabled in the access token of the requesting thread (see ). The provides access to data associated with a specific file or directory, including security information and alternative data streams, for backup and restore operations. This class uses the BackupRead, BackupSeek and BackupWrite functions from the Win32 API to provide access to the file or directory. Initializes a new instance of the class with the specified path, creation mode, access rights and sharing permission, additional file options, access control and audit security. The transaction. A relative or absolute path for the file that the current object will encapsulate. A constant that determines how to open or create the file. A constant that determines the access rights to use when creating access and audit rules for the file. A constant that determines how the file will be shared by processes. A constant that specifies additional file options. A constant that determines the access control and audit security for the file. This parameter may be . Initializes a new instance of the class. Initializes a new instance of the class with the specified path, creation mode, access rights and sharing permission, and additional file options. The transaction. A relative or absolute path for the file that the current object will encapsulate. A constant that determines how to open or create the file. A constant that determines the access rights to use when creating access and audit rules for the file. A constant that determines how the file will be shared by processes. A constant that specifies additional file options. Initializes a new instance of the class with the specified path, creation mode, access rights and sharing permission. The transaction. A relative or absolute path for the file that the current object will encapsulate. A constant that determines how to open or create the file. A constant that determines the access rights to use when creating access and audit rules for the file. A constant that determines how the file will be shared by processes. Initializes a new instance of the class with the specified path, creation mode and access rights. The transaction. A relative or absolute path for the file that the current object will encapsulate. A constant that determines how to open or create the file. A constant that determines the access rights to use when creating access and audit rules for the file. The file will be opened for exclusive access. Initializes a new instance of the class with the specified path and creation mode. The transaction. A relative or absolute path for the file that the current object will encapsulate. A constant that determines how to open or create the file. The file will be opened for exclusive access for both reading and writing. Initializes a new instance of the class with the specified path, creation mode, access rights and sharing permission, additional file options, access control and audit security. A relative or absolute path for the file that the current object will encapsulate. A constant that determines how to open or create the file. A constant that determines the access rights to use when creating access and audit rules for the file. A constant that determines how the file will be shared by processes. A constant that specifies additional file options. A constant that determines the access control and audit security for the file. This parameter may be . Initializes a new instance of the class. Initializes a new instance of the class with the specified path, creation mode, access rights and sharing permission, and additional file options. A relative or absolute path for the file that the current object will encapsulate. A constant that determines how to open or create the file. A constant that determines the access rights to use when creating access and audit rules for the file. A constant that determines how the file will be shared by processes. A constant that specifies additional file options. Initializes a new instance of the class with the specified path, creation mode, access rights and sharing permission. A relative or absolute path for the file that the current object will encapsulate. A constant that determines how to open or create the file. A constant that determines the access rights to use when creating access and audit rules for the file. A constant that determines how the file will be shared by processes. Initializes a new instance of the class with the specified path, creation mode and access rights. A relative or absolute path for the file that the current object will encapsulate. A constant that determines how to open or create the file. A constant that determines the access rights to use when creating access and audit rules for the file. The file will be opened for exclusive access. Initializes a new instance of the class with the specified path and creation mode. A relative or absolute path for the file that the current object will encapsulate. A constant that determines how to open or create the file. The file will be opened for exclusive access for both reading and writing. Initializes a new instance of the class for the specified file handle, with the specified read/write permission. A file handle for the file that this object will encapsulate. A constant that gets the and properties of the object. Releases unmanaged resources and performs other cleanup operations before the is reclaimed by garbage collection. Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. An array of bytes. When this method returns, the buffer contains the specified byte array with the values between and ( + - 1) replaced by the bytes read from the current source. The zero-based byte offset in at which to begin storing the data read from the current stream. The maximum number of bytes to be read from the current stream. The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached. The sum of and is larger than the buffer length. is null. or is negative. An I/O error occurs. The stream does not support reading. Methods were called after the stream was closed. This method will not backup the access-control list (ACL) data for the file or directory. When overridden in a derived class, reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. An array of bytes. When this method returns, the buffer contains the specified byte array with the values between and ( + - 1) replaced by the bytes read from the current source. The zero-based byte offset in at which to begin storing the data read from the current stream. The maximum number of bytes to be read from the current stream. Indicates whether the function will backup the access-control list (ACL) data for the file or directory. The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached. The sum of and is larger than the buffer length. is null. or is negative. An I/O error occurs. The stream does not support reading. Methods were called after the stream was closed. Skips ahead the specified number of bytes from the current stream. This method represents the Win32 API implementation of BackupSeek. Applications use the method to skip portions of a data stream that cause errors. This function does not seek across stream headers. For example, this function cannot be used to skip the stream name. If an application attempts to seek past the end of a substream, the function fails, the return value indicates the actual number of bytes the function seeks, and the file position is placed at the start of the next stream header. The number of bytes to skip. The number of bytes actually skipped. When overridden in a derived class, sets the position within the current stream. A byte offset relative to the parameter. A value of type indicating the reference point used to obtain the new position. The new position within the current stream. This stream does not support seeking using this method, and calling this method will always throw . See for an alternative way of seeking forward. The stream does not support seeking. Applies access control list (ACL) entries described by a object to the file described by the current object. A object that describes an ACL entry to apply to the current file. When overridden in a derived class, sets the length of the current stream. The desired length of the current stream in bytes. This method is not supported by the class, and calling it will always generate a . Always thrown by this class. Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. An array of bytes. This method copies bytes from to the current stream. The zero-based byte offset in at which to begin copying bytes to the current stream. The number of bytes to be written to the current stream. The sum of and is greater than the buffer length. is null. or is negative. An I/O error occurs. The stream does not support writing. Methods were called after the stream was closed. This method will not process the access-control list (ACL) data for the file or directory. When overridden in a derived class, writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written. An array of bytes. This method copies bytes from to the current stream. The zero-based byte offset in at which to begin copying bytes to the current stream. The number of bytes to be written to the current stream. Specifies whether the function will restore the access-control list (ACL) data for the file or directory. If this is , you need to specify and access when opening the file or directory handle. If the handle does not have those access rights, the operating system denies access to the ACL data, and ACL data restoration will not occur. The sum of and is greater than the buffer length. is null. or is negative. An I/O error occurs. The stream does not support writing. Methods were called after the stream was closed. Allows access by other processes to all or part of a file that was previously locked. The beginning of the range to unlock. The range to be unlocked. or is negative. The file is closed. Clears all buffers for this stream and causes any buffered data to be written to the underlying device. An I/O error occurs. Gets a object that encapsulates the access control list (ACL) entries for the file described by the current object. A object that encapsulates the access control list (ACL) entries for the file described by the current object. Reads a stream header from the current . The stream header read from the current , or if the end-of-file was reached before the required number of bytes of a header could be read. The stream must be positioned at where an actual header starts for the returned object to represent valid information. Prevents other processes from changing the while permitting read access. The beginning of the range to lock. The value of this parameter must be equal to or greater than zero (0). The range to be locked. or is negative. The file is closed. The process cannot access the file because another process has locked a portion of the file. Releases the unmanaged resources used by the and optionally releases the managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Gets a value indicating whether the current stream supports reading. true if the stream supports reading; otherwise, false. Gets a value indicating whether the current stream supports seeking. This method always returns . Gets a value indicating whether the current stream supports writing. true if the stream supports writing; otherwise, false. When overridden in a derived class, gets the length in bytes of the stream. This method always throws an exception. This exception is always thrown if this property is accessed on a . When overridden in a derived class, gets or sets the position within the current stream. This method always throws an exception. This exception is always thrown if this property is accessed on a . Gets a object that represents the operating system file handle for the file that the current object encapsulates. A object that represents the operating system file handle for the file that the current object encapsulates. Provides static methods for the creation, copying, deletion, moving, and opening of files, and aids in the creation of objects. As opposed to the corresponding class, this class supports the use of extended length unicode paths, such as \\?\Volume{c00fa7c5-63eb-11dd-b6ed-806e6f6e6963}\autoexec.bat. In addition, support for transacted file operation using the kernel transaction manager is provided. (See also ). Note that no methods in this class perform any validation of the supplied paths. They are passed as is to the corresponding native kernel functions, meaning that invalid paths may result in exceptions of a type other than the expected for a certain operation. Opens a file, appends the specified string to the file, and then closes the file. If the file does not exist, this method creates a file, writes the specified string to the file, then closes the file. Opens a file, appends the specified string to the file, and then closes the file. If the file does not exist, this method creates a file, writes the specified string to the file, then closes the file. The file to append the specified string to. The string to append to the file. Appends the specified string to the file, creating the file if it does not already exist. The file to append the specified string to. The string to append to the file. The character encoding to use. Opens a file as part of a transaction, appends the specified string to the file, and then closes the file. If the file does not exist, this method creates a file, writes the specified string to the file, then closes the file. The transaction. The file to append the specified string to. The string to append to the file. Appends the specified string to the file as part of a transaction, creating the file if it does not already exist. The transaction. The file to append the specified string to. The string to append to the file. The character encoding to use. Creates a that appends UTF-8 encoded text to an existing file. Creates a that appends UTF-8 encoded text to an existing file. The path to the file to append to. A that appends UTF-8 encoded text to an existing file. Creates a , that is part of a transaction, that appends UTF-8 encoded text to an existing file. The transaction. The path to the file to append to. A that appends UTF-8 encoded text to an existing file. Copies an existing file to a new file. Copies an existing file to a new file. Overwriting a file of the same name is not allowed. The file to copy. The name of the destination file. This cannot be a directory or an existing file. Copies an existing file to a new file. The file to copy. The name of the destination file. This cannot be a directory or an existing file. true if the destination file can be overwritten; otherwise, false. Copies an existing file to a new file. The name of an existing file. The name of the new file. Flags that specify how the file is to be copied. true if the file was completely copied, or false if the copy operation was aborted. Copies an existing file to a new file. The name of an existing file. The name of the new file. Flags that specify how the file is to be copied. true if original Timestamps must be preserved, otherwise false true if the file was completely copied, or false if the copy operation was aborted. Copies an existing file to a new file, notifying the application of its progress through a callback function. The name of an existing file. The name of the new file. Flags that specify how the file is to be copied. A callback function that is called each time another portion of the file has been copied. This parameter can be . The argument to be passed to the callback function. This parameter can be . true if original Timestamps must be preserved, otherwise false true if the file was completely copied, or false if the copy operation was aborted. Copies an existing file to a new file as a transacted operation. Overwriting a file of the same name is not allowed. The transaction. The file to copy. The name of the destination file. This cannot be a directory or an existing file. Copies an existing file to a new file as a transacted operation. The transaction. The file to copy. The name of the destination file. This cannot be a directory or an existing file. true if the destination file can be overwritten; otherwise, false. Copies an existing file to a new file as a transacted operation. The name of an existing file. The name of the new file. Flags that specify how the file is to be copied. The transaction to use. true if the file was completely copied, or false if the copy operation was aborted. Copies an existing file to a new file as a transacted operation, notifying the application of its progress through a callback function. The name of an existing file. The name of the new file. Flags that specify how the file is to be copied. A callback function that is called each time another portion of the file has been copied. This parameter can be . The argument to be passed to the callback function. This parameter can be . The transaction to use. true if the file was completely copied, or false if the copy operation was aborted. Creates, overwrites or opens a file or directory in the specified path. Creates or overwrites a file in the specified path. The path and name of the file to create. A that provides read/write access to the file specified in path. Creates or overwrites a file in the specified path. The path and name of the file to create. The number of bytes buffered for reads and writes to the file. A that provides read/write access to the file specified in path. Creates or overwrites the specified file, specifying a buffer size and a value that describes how to create or overwrite the file. The name of the file. The number of bytes buffered for reads and writes to the file. One of the values that describes how to create or overwrite the file. A new file with the specified buffer size. Creates or overwrites the specified file, specifying a buffer size, a value that describes how to create or overwrite the file and a specified . The name of the file. The number of bytes buffered for reads and writes to the file. One of the values that describes how to create or overwrite the file. A instance that determines the access control and audit security for the file. A new file with the specified buffer size and security options. Creates or overwrites the specified file, specifying advanced options , , , , and a buffer size. The name of the file. The option gives you more precise control over how you want to create a file. The allow you additionaly specify to default redwrite capability - just write, bypassing any cache. The option controls how you would like to share created file with other requesters. The additional advanced options to create a file. A instance that determines the access control and audit security for the file. Size of the buffer. A new file with the specified options and buffer size. Creates or overwrites a file in the specified path as part of a transaction. The transaction. The path and name of the file to create. A that provides read/write access to the file specified in path. Creates or overwrites a file in the specified path as part of a transaction. The transaction. The path and name of the file to create. The number of bytes buffered for reads and writes to the file. A that provides read/write access to the file specified in path. Creates or overwrites the specified file as part of a transaction, specifying a buffer size and a value that describes how to create or overwrite the file. The transaction. The name of the file. The number of bytes buffered for reads and writes to the file. One of the values that describes how to create or overwrite the file. A new file with the specified buffer size. Creates or overwrites the specified file as part of a transaction, specifying a buffer size, a value that describes how to create or overwrite the file and a specified . The transaction. The name of the file. The number of bytes buffered for reads and writes to the file. One of the values that describes how to create or overwrite the file. A instance that determines the access control and audit security for the file. A new file with the specified buffer size and security options. Creates or opens a file for writing UTF-8 encoded text. Creates or opens a file for writing UTF-8 encoded text. The file to be opened for writing. A that writes to the specified file using UTF-8 encoding. Creates or opens a file for writing UTF-8 encoded text as part of a transaction. The transaction. The file to be opened for writing. A that writes to the specified file using UTF-8 encoding. Deletes the specified file. An exception is not thrown if the specified file does not exist. Deletes the specified file. An exception is not thrown if the specified file does not exist. The name of the file to be deleted. Deletes the specified file. An exception is not thrown if the specified file does not exist. The name of the file to be deleted. if set to true overrides read only attribute of the file. Deletes the specified file as part of a transaction. An exception is not thrown if the specified file does not exist. The transaction. The name of the file to be deleted. Deletes the specified file as part of a transaction. An exception is not thrown if the specified file does not exist. The transaction. The name of the file to be deleted. if set to true overrides read only attribute of the file. Decrypts a file that was encrypted by the current account using the Encrypt method. A path that describes a file to decrypt. Encrypts a file so that only the account used to encrypt the file can decrypt it. A path that describes a file to encrypt. Retrieves the encryption status of the specified file. The name of the file. The of the specified . Determines whether the specified file exists. Determines whether the specified file exists. The file to check. Note that this files may contain wildcards, such as '*'. true if the caller has the required permissions and path contains the name of an existing file; otherwise, false. This method also returns false if path is nullNothingnullptra null reference (Nothing in Visual Basic), an invalid path, or a zero-length string. If the caller does not have sufficient permissions to read the specified file, no exception is thrown and the method returns false regardless of the existence of path. Determines whether the specified file exists as part of a transaction. The transaction. The file to check. Note that this files may contain wildcards, such as '*'. true if the caller has the required permissions and path contains the name of an existing file; otherwise, false. This method also returns false if path is nullNothingnullptra null reference (Nothing in Visual Basic), an invalid path, or a zero-length string. If the caller does not have sufficient permissions to read the specified file, no exception is thrown and the method returns false regardless of the existence of path. Gets a object that encapsulates access control list (ACL) entries for a particular file. Gets a object that encapsulates the specified type of access control list (ACL) entries for a particular file. The path to a file containing a object that describes the file's access control list (ACL) information. A object that encapsulates the access control rules for the file described by the parameter. Gets a object that encapsulates the specified type of access control list (ACL) entries for a particular file. The path to a file containing a object that describes the file's access control list (ACL) information. One (or more) of the values that specifies the type of access control list (ACL) information to receive. A object that encapsulates the access control rules for the file described by the parameter. Applies access control list (ACL) entries described by a FileSecurity object to the specified file. Note that unlike this method does not automatically determine what parts of the specified instance has been modified. Instead, the parameter is used to specify what entries from to apply to . A file to add or remove access control list (ACL) entries from. A object that describes an ACL entry to apply to the file described by the parameter. One or more of the values that specifies the type of access control list (ACL) information to set. Gets the of the file on the path. The path to the file. The of the file on the path. Gets the of the file on the path. The transaction. The path to the file. The of the file on the path. Gets the of the file on the path. Gets the of the file on the path. The path to the file. The of the file on the path. Gets the of the file on the path as part of a transaction. The transaction. The path to the file. The of the file on the path. Sets the attributes for a file or directory. Sets the attributes for a file or directory. The name of the file whose attributes are to be set. The file attributes to set for the file. Note that all other values override . Sets the attributes for a file or directory as part of a transaction. The transaction. The name of the file whose attributes are to be set. The file attributes to set for the file. Note that all other values override . Returns the creation date and time of the specified file or directory. Returns the creation date and time of the specified file or directory. The file or directory for which to obtain creation date and time information. A structure set to the creation date and time for the specified file or directory. This value is expressed in local time. Returns the creation date and time, in coordinated universal time (UTC), of the specified file or directory. Returns the creation date and time, in coordinated universal time (UTC), of the specified file or directory. The file or directory for which to obtain creation date and time information. A structure set to the creation date and time for the specified file or directory. This value is expressed in UTC time. Returns the date and time the specified file or directory was last accessed. Returns the date and time the specified file or directory was last accessed. The file or directory for which to obtain creation date and time information. A structure set to the date and time that the specified file or directory was last accessed. This value is expressed in local time. Returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last accessed. Returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last accessed. The path. A structure set to the date and time that the specified file or directory was last accessed. This value is expressed in UTC time. Returns the date and time the specified file or directory was last written to. Returns the date and time the specified file or directory was last written to. The path. A structure set to the date and time that the specified file or directory was last written to. This value is expressed in local time. Returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last written to. Returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last written to. The file or directory for which to obtain write date and time information. A structure set to the date and time that the specified file or directory was last written. This value is expressed in UTC time. Returns the creation date and time of the specified file or directory as part of a transaction. The transaction to use. The file or directory for which to obtain creation date and time information. A structure set to the creation date and time for the specified file or directory. This value is expressed in local time. Returns the creation date and time, in coordinated universal time (UTC), of the specified file or directory as part of a transaction. The file or directory for which to obtain creation date and time information. The transaction to use. A structure set to the creation date and time for the specified file or directory. This value is expressed in UTC time. Returns the date and time the specified file or directory was last accessed as part of a transaction. The file or directory for which to obtain creation date and time information. The transaction to use. A structure set to the date and time that the specified file or directory was last accessed. This value is expressed in local time. Returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last accessed as part of a transaction. The path. A structure set to the date and time that the specified file or directory was last accessed. This value is expressed in UTC time. The transaction to use. Returns the date and time the specified file or directory was last written to as part of a transaction. The path. The transaction to use. A structure set to the date and time that the specified file or directory was last written to. This value is expressed in local time. Returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last written to as part of a transaction. The file or directory for which to obtain write date and time information. The transaction to use. A structure set to the date and time that the specified file or directory was last written. This value is expressed in UTC time. Retrieves file information for the specified file. Retrieves file information for the specified file. A connected to the open file from which to retrieve the information. A object containing the requested information. Retrieves file information for the specified file. A connected to the open file from which to retrieve the information. A object containing the requested information. Moves a specified file to a new location, providing the option to specify a new file name. Moves a specified file to a new location, providing the option to specify a new file name. The name of the file to move. The new path for the file. This method works across disk volumes, and it does not throw an exception if the source and destination are the same. Note that if you attempt to replace a file by moving a file of the same name into that directory, you get an IOException. You cannot use the Move method to overwrite an existing file. Moves a file or directory, including its children. The name of the existing file or directory on the local computer. If specifies , the file cannot exist on a remote share because delayed operations are performed before the network is available. The new name of the file or directory on the local computer. When moving a file, can be on a different file system or volume. If is on another drive, you must set the flag in . When moving a directory, and must be on the same drive. The move options. Moves a file or directory, including its children. You can provide a callback function that receives progress notifications. The name of the existing file or directory on the local computer. If specifies , the file cannot exist on a remote share because delayed operations are performed before the network is available. The new name of the file or directory on the local computer. When moving a file, can be on a different file system or volume. If is on another drive, you must set the flag in . When moving a directory, and must be on the same drive. The move options. A callback function that is called each time another portion of the file has been moved. The callback function can be useful if you provide a user interface that displays the progress of the operation. This parameter can be . An argument to be passed to the callback function. This parameter can be . true if the file was completely moved, false if the operation was aborted. Moves a specified file to a new location as part of a transaction, providing the option to specify a new file name. The transaction. The name of the file to move. The new path for the file. This method works across disk volumes, and it does not throw an exception if the source and destination are the same. Note that if you attempt to replace a file by moving a file of the same name into that directory, you get an IOException. You cannot use the Move method to overwrite an existing file. Moves a file or directory as part of a transaction, including its children. The transaction. The name of the existing file or directory on the local computer. If specifies , the file cannot exist on a remote share because delayed operations are performed before the network is available. The new name of the file or directory on the local computer. When moving a file, can be on a different file system or volume. If is on another drive, you must set the flag in . When moving a directory, and must be on the same drive. The move options. Moves a file or directory as part of a transaction, including its children. You can provide a callback function that receives progress notifications. The transaction. The name of the existing file or directory on the local computer. If specifies , the file cannot exist on a remote share because delayed operations are performed before the network is available. The new name of the file or directory on the local computer. When moving a file, can be on a different file system or volume. If is on another drive, you must set the flag in . When moving a directory, and must be on the same drive. The move options. A callback function that is called each time another portion of the file has been moved. The callback function can be useful if you provide a user interface that displays the progress of the operation. This parameter can be . An argument to be passed to the callback function. This parameter can be . true if the file was completely moved, false if the operation was aborted. Opens a on the specified path. Opens a on the specified path with read/write access. The file to open. A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten. A opened in the specified mode and path, with read/write access and not shared. Opens a on the specified path, with the specified mode and access. The file to open. A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten. A value that specifies the operations that can be performed on the file. An unshared that provides access to the specified file, with the specified mode and access. Opens a on the specified path, having the specified mode with read, write, or read/write access and the specified sharing option. The file to open. A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten. A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten. A value specifying the type of access other threads have to the file. A on the specified path, having the specified mode with read, write, or read/write access and the specified sharing option. Opens a on the specified path, having the specified mode with read, write, or read/write access, the specified sharing option and additional options specified. The file to open. A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten. A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten along with additional options. A value specifying the type of access other threads have to the file. Advanced options for this file. A on the specified path, having the specified mode with read, write, or read/write access and the specified sharing option. Opens a on the specified path, having the specified mode with read, write, or read/write access, the specified sharing option and additional options specified. The file to open. A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten. A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten along with additional options. A value specifying the type of access other threads have to the file. Advanced options for this file. A on the specified path, having the specified mode with read, write, or read/write access and the specified sharing option. Opens the specified file for reading purposes bypassing security attributes. This method is simpler to use then BackupFileStream to read only file's data stream. The file path to open. A on the specified path, having the read-only mode and sharing options. Opens a FileStream on the specified path with read/write access as part of a transaction. The transaction. The file to open. A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten. A opened in the specified mode and path, with read/write access and not shared. Opens a on the specified path as part of a transaction, with the specified mode and access. The transaction. The file to open. A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten. A value that specifies the operations that can be performed on the file. An unshared that provides access to the specified file, with the specified mode and access. Opens a on the specified path as part of a transaction, having the specified mode with read, write, or read/write access and the specified sharing option. The transaction. The file to open. A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten. A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten. A value specifying the type of access other threads have to the file. A on the specified path, having the specified mode with read, write, or read/write access and the specified sharing option. Opens a on the specified path, having the specified mode with read, write, or read/write access, the specified sharing option and additional options specified. The transaction to use. The file to open. A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten. A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten along with additional options. A value specifying the type of access other threads have to the file. Advanced options for this file. A on the specified path, having the specified mode with read, write, or read/write access and the specified sharing option. Opens a on the specified path, having the specified mode with read, write, or read/write access, the specified sharing option and additional options specified. The transaction to use. The file to open. A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten. A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten along with additional options. A value specifying the type of access other threads have to the file. Advanced options for this file. A on the specified path, having the specified mode with read, write, or read/write access and the specified sharing option. Opens an existing file for reading. Opens an existing file for reading. The file to be opened for reading. A read-only on the specified path. Opens an existing file for reading as part of a transaction. The transaction. The file to be opened for reading. A read-only on the specified path. Opens an existing UTF-8 encoded text file for reading. Opens an existing UTF-8 encoded text file for reading. The file to be opened for reading. A StreamReader on the specified path. Opens an existing UTF-8 encoded text file for reading as part of a transaction. The transaction. The file to be opened for reading. A StreamReader on the specified path. Opens an existing file for writing. Opens an existing file for writing. The file to be opened for writing. An unshared object on the specified path with Write access. Opens an existing file for writing as part of a transaction. The transaction. The file to be opened for writing. An unshared object on the specified path with Write access. Transfers the time stamps for files and directories. The source path. The destination path. This method uses BackupSemantics flag to get Timestamp changed for folders. This method does not change last access time for the source file. Opens a binary file, reads the contents of the file into a byte array, and then closes the file. Opens a binary file, reads the contents of the file into a byte array, and then closes the file. The file to open for reading. A byte array containing the contents of the file. Opens a binary file, reads the contents of the file into a byte array, and then closes the file as part of a transaction. The transaction. The file to open for reading. A byte array containing the contents of the file. Opens a text file, reads all lines of the file, and then closes the file. Opens a text file, reads all lines of the file, and then closes the file. The file to open for reading. A string array containing all lines of the file. Opens a file, reads all lines of the file with the specified encoding, and then closes the file. The file to open for reading. The encoding applied to the contents of the file. A string array containing all lines of the file. Opens a text file as part of a transaction, reads all lines of the file, and then closes the file. The transaction. The file to open for reading. A string array containing all lines of the file. Opens a file as part of a transaction, reads all lines of the file with the specified encoding, and then closes the file. The transaction. The file to open for reading. The encoding applied to the contents of the file. A string array containing all lines of the file. Opens a text file, reads all lines of the file, and then closes the file. Opens a text file, reads all lines of the file, and then closes the file. The file to open for reading. A string containing all lines of the file. Opens a file, reads all lines of the file with the specified encoding, and then closes the file. The file to open for reading. The encoding applied to the contents of the file. A string containing all lines of the file. Opens a text file as part of a transaction, reads all lines of the file, and then closes the file. The transaction. The file to open for reading. A string containing all lines of the file. Opens a text file as part of a transaction, reads all lines of the file with the specified encoding, and then closes the file. The transaction. The file to open for reading. The encoding applied to the contents of the file. A string containing all lines of the file. Replaces one file with another file, with the option of creating a backup copy of the original file. The replacement file assumes the name of the replaced file and its identity. Replaces one file with another file, with the option of creating a backup copy of the original file. The replacement file assumes the name of the replaced file and its identity. The name of a file that replaces the file specified by . The name of the file being replaced. The name of the backup file. Replaces one file with another file, with the option of creating a backup copy of the original file. The replacement file assumes the name of the replaced file and its identity. The name of a file that replaces the file specified by . The name of the file being replaced. The name of the backup file. set to true to ignore merge errors (such as attributes and access control lists (ACLs)) from the replaced file to the replacement file; otherwise, false. Internal method for setting file times on a file. The path. The creation time. The last access time. The last write time. This method uses FileOptions.BackupSemantics flag to write Timestamps to folders as well. Sets the date and time the file was created. Sets the date and time the file was created. The file for which to set the creation date and time information. A containing the value to set for the creation date and time of path. This value is expressed in local time. Sets the date and time, in coordinated universal time (UTC), that the file was created. Sets the date and time, in coordinated universal time (UTC), that the file was created. The file for which to set the creation date and time information. A containing the value to set for the creation date and time of path. This value is expressed in UTC time. Sets the date and time, in local time, that the file was last accessed. Sets the date and time, in local time, that the file was last accessed. The file for which to set the last access date and time information. A containing the value to set for the last access date and time of path. This value is expressed in local time. Sets the date and time, in coordinated universal time (UTC), that the file was last accessed. Sets the date and time, in coordinated universal time (UTC), that the file was last accessed. The file for which to set the last access date and time information. A containing the value to set for the last access date and time of path. This value is expressed in UTC time. Sets the date and time, in local time, that the file was last modified. Sets the date and time, in local time, that the file was last modified. The file for which to set the last modification date and time information. A containing the value to set for the last modification date and time of path. This value is expressed in local time. Sets the date and time, in coordinated universal time (UTC), that the file was last modified. Sets the date and time, in coordinated universal time (UTC), that the file was last modified. The file for which to set the last modification date and time information. A containing the value to set for the last modification date and time of path. This value is expressed in UTC time. Sets all the time stamps at once. Sets the time stamps at once. The path. The creation time. The last access time. The last write time. Sets all the time stamps at once in UTC. Sets all the time stamps at once in UTC. This method is redundant, because NTFS driver converts any dates in UTC format anyways. The path. The creation time. The last access time. The last write time. Internal method for setting file times on a file as part of a transaction. The transaction. The path. The creation time. The last access time. The last write time. Sets the date and time the file was created as part of a transaction. The transaction. The file for which to set the creation date and time information. A containing the value to set for the creation date and time of path. This value is expressed in local time. Sets the date and time as part of a transaction, in coordinated universal time (UTC), that the file was created. The transaction. The file for which to set the creation date and time information. A containing the value to set for the creation date and time of path. This value is expressed in UTC time. Sets the date and time as part of a transaction, in local time, that the file was last accessed. The transaction. The file for which to set the last access date and time information. The last access time. Sets the date and time as part of a transaction, in coordinated universal time (UTC), that the file was last accessed. The transaction. The file for which to set the last access date and time information. The last access time. Sets the date and time as part of a transaction, in local time, that the file was last modified. The transaction. The file for which to set the last modification date and time information. The last write time. Sets the date and time as part of a transaction, in coordinated universal time (UTC), that the file was last modified. The transaction. The file for which to set the last modification date and time information. The last write time. Sets the time stamps at once. The transaction. The path. The creation time. The last access time. The last write time. Sets the time stamps at once in UTC. But it's redundant, because NTFS driver converts any dates in UTC format anyways. The transaction. The path. The creation time. The last access time. The last write time. Creates a new file, writes the specified byte array to the file, and then closes the file. If the target file already exists, it is overwritten. Creates a new file, writes the specified byte array to the file, and then closes the file. If the target file already exists, it is overwritten. The file to write to. The bytes to write to the file. Creates a new file as part of a transaction, writes the specified byte array to the file, and then closes the file. If the target file already exists, it is overwritten. The transaction. The file to write to. The bytes to write to the file. Creates a new file, write the specified string array to the file, and then closes the file. If the target file already exists, it is overwritten. Creates a new file, write the specified string array to the file, and then closes the file. If the target file already exists, it is overwritten. The file to write to. The string array to write to the file. Creates a new file, writes the specified string array to the file using the specified encoding, and then closes the file. If the target file already exists, it is overwritten. The file to write to. he string array to write to the file. An object that represents the character encoding applied to the string array. Creates a new file as part of a transaction, write the specified string array to the file, and then closes the file. If the target file already exists, it is overwritten. The transaction. The file to write to. The string array to write to the file. Creates a new file as part of a transaction, writes the specified string array to the file using the specified encoding, and then closes the file. If the target file already exists, it is overwritten. The transaction. The file to write to. he string array to write to the file. An object that represents the character encoding applied to the string array. Creates a new file, write the contents to the file, and then closes the file. If the target file already exists, it is overwritten. Creates a new file, write the contents to the file, and then closes the file. If the target file already exists, it is overwritten. The file to write to. The string to write to the file. Creates a new file, writes the specified string to the file using the specified encoding, and then closes the file. If the target file already exists, it is overwritten. The file to write to. The string to write to the file. An object that represents the encoding to apply to the string. Creates a new file as part of a transaction, write the contents to the file, and then closes the file. If the target file already exists, it is overwritten. The transaction. The file to write to. The string to write to the file. Creates a new file as part of a transaction, writes the specified string to the file using the specified encoding, and then closes the file. If the target file already exists, it is overwritten. The transaction. The file to write to. The string to write to the file. An object that represents the encoding to apply to the string. Establishes a hard link between an existing file and a new file. This function is only supported on the NTFS file system, and only for files, not directories. Establishes a hard link between an existing file and a new file. This function is only supported on the NTFS file system, and only for files, not directories. The source file. The destination file. The destination file already exists. An attempt to create a hard-link on a non-supported filesystem could not be found Establishes a hard link between an existing file and a new file. This function is only supported on the NTFS file system, and only for files, not directories. The source file. The destination file. The transaction to use. The destination file already exists. An attempt to create a hard-link on a non-supported filesystem could not be found Creates a symbolic link. Creates a symbolic link. The name of the target for the symbolic link to be created. The symbolic link to be created. Indicates whether the link target, , is a file or directory. Creates a symbolic link as part of a transaction. The name of the target for the symbolic link to be created. The symbolic link to be created. Indicates whether the link target, , is a file or directory. The transaction to use. Gets information about the target of a mount point or symbolic link on an NTFS file system. The path to the reparse point. An instance of or containing information about the symbolic link or mount point pointed to by . Gets information about the target of a mount point or symbolic link on an NTFS file system as part of a transaction. The transaction. The path to the reparse point. An instance of or containing information about the symbolic link or mount point pointed to by . Enumerates all hard links to the specified file. Creates an enumeration of all the hard links to the specified . Required Windows Vista or later. The name of the file. An enumeration of all the hard links to the specified Creates an enumeration of all the hard links to the specified as part of the specified . The transaction to use. The name of the file. An enumeration of all the hard links to the specified Required Windows Vista or later. Retrieves the actual number of bytes of disk storage used to store a specified file. Retrieves the actual number of bytes of disk storage used to store a specified file. If the file is located on a volume that supports compression and the file is compressed, the value obtained is the compressed size of the specified file. If the file is located on a volume that supports sparse files and the file is a sparse file, the value obtained is the sparse size of the specified file. The name of the file. Do not specify the name of a file on a nonseeking device, such as a pipe or a communications device, as its file size has no meaning. the actual number of bytes of disk storage used to store the specified file. Retrieves the actual number of bytes of disk storage used to store a specified file as part of a transaction. If the file is located on a volume that supports compression and the file is compressed, the value obtained is the compressed size of the specified file. If the file is located on a volume that supports sparse files and the file is a sparse file, the value obtained is the sparse size of the specified file. The transaction. The name of the file. Do not specify the name of a file on a nonseeking device, such as a pipe or a communications device, as its file size has no meaning. the actual number of bytes of disk storage used to store the specified file. Represents a privilege for an access token. The privileges available on the local machine are available as static instances from this class. To create a representing a privilege on another system, use the constructor specifying a system name together with one of these static instances. Required to assign the primary token of a process. User Right: Replace a process-level token. Required to generate audit-log entries. Give this privilege to secure servers. User Right: Generate security audits. Required to perform backup operations. This privilege causes the system to grant all read access control to any file, regardless of the access control list (ACL) specified for the file. Any access request other than read is still evaluated with the ACL. User Right: Back up files and directories. Required to receive notifications of changes to files or directories. This privilege also causes the system to skip all traversal access checks. It is enabled by default for all users. User Right: Bypass traverse checking. Required to create named file mapping objects in the global namespace during Terminal Services sessions. This privilege is enabled by default for administrators, services, and the local system account. User Right: Create global objects. Windows XP/2000: This privilege is not supported. Note that this value is supported starting with Windows Server 2003, Windows XP SP2, and Windows 2000 SP4. Required to create a paging file. User Right: Create a pagefile. Required to create a permanent object. User Right: Create permanent shared objects. Required to create a symbolic link. User Right: Create symbolic links. Required to create a primary token. User Right: Create a token object. Required to debug and adjust the memory of a process owned by another account. User Right: Debug programs. Required to mark user and computer accounts as trusted for delegation. User Right: Enable computer and user accounts to be trusted for delegation. Required to impersonate. User Right: Impersonate a client after authentication. Windows XP/2000: This privilege is not supported. Note that this value is supported starting with Windows Server 2003, Windows XP SP2, and Windows 2000 SP4. Required to increase the base priority of a process. User Right: Increase scheduling priority. Required to increase the quota assigned to a process. User Right: Adjust memory quotas for a process. Required to allocate more memory for applications that run in the context of users. User Right: Increase a process working set. Required to load or unload a device driver. User Right: Load and unload device drivers. Required to lock physical pages in memory. User Right: Lock pages in memory. Required to create a computer account. User Right: Add workstations to domain. Required to enable volume management privileges. User Right: Manage the files on a volume. Required to gather profiling information for a single process. User Right: Profile single process. Required to modify the mandatory integrity level of an object. User Right: Modify an object label. Required to shut down a system using a network request. User Right: Force shutdown from a remote system. Required to perform restore operations. This privilege causes the system to grant all write access control to any file, regardless of the ACL specified for the file. Any access request other than write is still evaluated with the ACL. Additionally, this privilege enables you to set any valid user or group SID as the owner of a file. User Right: Restore files and directories. Required to perform a number of security-related functions, such as controlling and viewing audit messages. This privilege identifies its holder as a security operator. User Right: Manage auditing and security log. Required to shut down a local system. User Right: Shut down the system. Required for a domain controller to use the LDAP directory synchronization services. This privilege enables the holder to read all objects and properties in the directory, regardless of the protection on the objects and properties. By default, it is assigned to the Administrator and LocalSystem accounts on domain controllers. User Right: Synchronize directory service data. Required to modify the nonvolatile RAM of systems that use this type of memory to store configuration information. User Right: Modify firmware environment values. Required to gather profiling information for the entire system. User Right: Profile system performance. Required to modify the system time. User Right: Change the system time. Required to take ownership of an object without being granted discretionary access. This privilege allows the owner value to be set only to those values that the holder may legitimately assign as the owner of an object. User Right: Take ownership of files or other objects. This privilege identifies its holder as part of the trusted computer base. Some trusted protected subsystems are granted this privilege. User Right: Act as part of the operating system. Required to adjust the time zone associated with the computer's internal clock. User Right: Change the time zone. Required to access Credential Manager as a trusted caller. User Right: Access Credential Manager as a trusted caller. Required to undock a laptop. User Right: Remove computer from docking station. Required to read unsolicited input from a terminal device. User Right: Not applicable. Create a new representing the specified privilege on the specified system. Name of the system. The privilege to copy the privilege name from. Retrieves the display name that represents this privilege. The display name that represents this privilege. Retrieves the locally unique identifier (LUID) used on to represent this privilege (on the system from which it originates). the locally unique identifier (LUID) used on to represent this privilege (on the system from which it originates). Indicates whether the current object is equal to another object of the same type. An object to compare with this object. true if the current object is equal to the parameter; otherwise, false. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. The parameter is null. Serves as a hash function for a particular type. A hash code for the current . Returns the system name for this privilege. This is equivalent to . A that represents the current . Initializes a new instance of the class, representing a privilege with the specified name on the local system. The name. Gets the system name identifying this privilege. The system name identifying this privilege. Indicates whether the link target is a file or directory. The link target is a file. The link target is a directory. The type of the data contained in the backup stream. This indicates an error. Standard data Extended attribute data Security descriptor data Alternative data streams Hard Link Information Property data Object identifiers Reparse points Sparse file Specifies how the operating system should open a file. Specifies that the operating system should create a new file. If the file already exists, an exception is thrown. Specifies that the operating system should create a new file. If the file already exists, it will be overwritten. Create is equivalent to requesting that if the file does not exist, use ; otherwise, use . Specifies that the operating system should open an existing file. The ability to open the file is dependent on the value specified by . A is thrown if the file does not exist. Specifies that the operating system should open a file if it exists; otherwise, a new file should be created. Specifies that the operating system should open an existing file. Once opened, the file should be truncated so that its size is zero bytes. Attempts to read from a file opened with Truncate cause an exception. Provides instance methods for the creation, copying, deletion, moving, and opening of files, and aids in the creation of FileStream objects. This class cannot be inherited. Initializes a new instance of the FileInfo class, which acts as a wrapper for a file path. The path to the file. is a reference. You can specify either the fully qualified or the relative file name, but the security check gets the fully qualified name. Refreshes the state of the object. FileSystemInfo.Refresh takes a snapshot of the file from the current file system. Refresh cannot correct the underlying file system even if the file system returns incorrect or outdated information. This can happen on platforms such as Windows 98. Calls must be made to Refresh before attempting to get the attribute information, or the information will be outdated. Deletes a file. Returns the path as a string. A string representing the path. Creates a that appends text to the file represented by this instance of the . A that appends UTF-8 encoded text to an existing file. Copies an existing file to a new file, disallowing the overwriting of an existing file. The name of the new file to copy to. A new file with a fully qualified path. Copies an existing file to a new file, allowing the overwriting of an existing file. The name of the new file to copy to. true to allow an existing file to be overwritten; otherwise, false. A new file, or an overwrite of an existing file if overwrite is true. If the file exists and overwrite is false, an IOException is thrown. Creates a file. A new file. Creates a that writes a new text file. A new Decrypts a file that was encrypted by the current account using the method. The Decrypt method allows you to decrypt a file that was encrypted using the Encrypt method. The Decrypt method can decrypt only files that were encrypted using the current user account. Both the Encrypt method and the Decrypt method use the cryptographic service provider (CSP) installed on the computer and the file encryption keys of the process calling the method. The current file system must be formatted as NTFS and the current operating system must be Microsoft Windows NT or later. Encrypts a file so that only the account used to encrypt the file can decrypt it. The Encrypt method allows you to encrypt a file so that only the account used to call this method can decrypt it. Use the Decrypt method to decrypt a file encrypted by the Encrypt method. Both the Encrypt method and the Decrypt method use the cryptographic service provider (CSP) installed on the computer and the file encryption keys of the process calling the method. The current file system must be formatted as NTFS and the current operating system must be Microsoft Windows NT or later. Gets a object that encapsulates the access control list (ACL) entries for the file described by the current object. A FileSecurity object that encapsulates the access control rules for the current file. Gets a object that encapsulates the specified type of access control list (ACL) entries for the file described by the current FileInfo object. The include sections. object that encapsulates the specified type of access control list (ACL) entries for the file described by the current FileInfo object. Moves a specified file to a new location, providing the option to specify a new file name. The path to move the file to, which can specify a different file name. This method works across disk volumes. For example, the file c:\MyFile.txt can be moved to d:\public and renamed NewFile.txt. Opens a file in the specified mode. A FileMode constant specifying the mode (for example, Open or Append) in which to open the file. A file opened in the specified mode, with read/write access and unshared. Opens a file in the specified mode with read, write, or read/write access. A FileMode constant specifying the mode (for example, Open or Append) in which to open the file. A FileAccess constant specifying whether to open the file with Read, Write, or ReadWrite file access. A file opened in the specified mode, with read/write access and unshared. Opens a file in the specified mode with read, write, or read/write access. A FileMode constant specifying the mode (for example, Open or Append) in which to open the file. A FileAccess constant specifying whether to open the file with Read, Write, or ReadWrite file access. A FileShare constant specifying the type of access other FileStream objects have to this file. A file opened in the specified mode, with read/write access and unshared. Creates a read-only FileStream. A new read-only FileStream object. Creates a StreamReader with UTF8 encoding that reads from an existing text file. A new StreamReader with UTF8 encoding. Creates a write-only FileStream. A new write-only unshared FileStream object. Replaces the contents of a specified file with the file described by the current FileInfo object, deleting the original file, and creating a backup of the replaced file. The name of a file to replace with the current file. The name of a file with which to create a backup of the file described by the destFileName parameter. A FileInfo object that encapsulates information about the file described by the destFileName parameter. The Replace method replaces the contents of a specified file with the contents of the file described by the current FileInfo object. It also creates a backup of the file that was replaced. Finally, it returns a new FileInfo object that describes the overwritten file. Replaces the specified destination file name. The name of a file to replace with the current file. The name of a file with which to create a backup of the file described by the destFileName parameter. true to ignore merge errors (such as attributes and ACLs) from the replaced file to the replacement file; otherwise false. A FileInfo object that encapsulates information about the file described by the destFileName parameter. The Replace method replaces the contents of a specified file with the contents of the file described by the current FileInfo object. It also creates a backup of the file that was replaced. Finally, it returns a new FileInfo object that describes the overwritten file. The last parameter is not supported yet. Applies access control list (ACL) entries described by a FileSecurity object to the file described by the current FileInfo object. A FileSecurity object that describes an access control list (ACL) entry to apply to the current file. The SetAccessControl method applies access control list (ACL) entries to the current file that represents the noninherited ACL list. Use the SetAccessControl method whenever you need to add or remove ACL entries from a file. Gets an instance of the parent directory. A object representing the parent directory of this file. To get the parent directory as a string, use the DirectoryName property. Gets a value indicating whether the file or directory exists. true if the file exists; otherwise, false. Gets or sets a value that determines if the current file is read only. true if the current file is read only; otherwise, false. Gets the name of the file with extension. File name with extension. For a file, Name returns only the file name and file name extension, such as MyFile.txt, not c:\Dir\Myfile.txt. Gets the file size. The file size. Flags that specify how a file is to be copied. None of the other flags. The copy operation fails immediately if the target file already exists. Progress of the copy is tracked in the target file in case the copy fails. The failed copy can be restarted at a later time by specifying the same values for existing file name and new file name as those used in the call that failed. The file is copied and the original file is opened for write access. An attempt to copy an encrypted file will succeed even if the destination copy cannot be encrypted. Windows 2000: This value is not supported If the source file is a symbolic link, the destination file is also a symbolic link pointing to the same file that the source symbolic link is pointing to. Windows Server 2003 and Windows XP/2000: This value is not supported The exception that is thrown when an attempt to create a directory or file that already exists was made. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The path. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The message. The path. The inner exception. Initializes a new instance of the class. The data for serializing or deserializing the object. The source and destination for the object. The reason that was called. Another part of the data file was copied. Another stream was created and is about to be copied. This is the callback reason given when the callback routine is first invoked. The collection of values that should return in case of traversal failure. Performs operations on String instances that contain file or directory path information. Provides standard Windows UNC path prefix Provides standard Windows long path prefix Provides standard Windows long path UNC prefix Changes the extension of a path string. The path information to modify. The path cannot contain any of the characters defined in GetInvalidPathChars. The new extension (with a leading period). Specify to remove an existing extension from path. The specified with the extension of the file name changed to the specified . Combines two path strings. The path1. The path2. A string containing the combined paths. If one of the specified paths is a zero-length string, this method returns the other path. If contains an absolute path, this method returns . Returns the directory information for the specified with a trailing directory separator. The path. The directory information for the specified with a trailing directory separator. Returns the directory information for the specified without the root and with a trailing directory separator. The path. The directory information for the specified without the root and with a trailing directory separator. Returns the directory information for the specified path string. The path. The path without the file name part (if any). Returns the directory information for the specified path string without the root information. The path. The path without the file name part and without the root information (if any). Returns the extension of the specified path string. The path string from which to get the extension. The extension of the specified , or an empty string if the path contains no extension. If the path is , this method returns . Returns the file name and extension of the specified path string. The path string from which to obtain the file name and extension. A String consisting of the characters after the last directory character in path. If the last character of path is a directory or volume separator character, this method returns Empty. If path is a null reference, this method returns . Returns the file name without extension of the specified path string. The path string from which to obtain the file name. A String consisting of the characters after the last directory character in path up to the extension. If the last character of path is a directory or volume separator character, this method returns an empty string. If path is a null reference, this method returns . Returns the absolute path for the specified path string. The file or directory for which to obtain absolute path information. A string containing the fully qualified location of path, such as "C:\MyFile.txt". Retrieves the short 8.3 type path form of the specified path. The existing path. Can be regualr and long paths. Otherwise throws an error. A path that has 8.3 type names. Hasn't been tested on NTFS volumes with disabled 8.3 name generation. Suspect some weirdness. Converts the specified existing path to its regular long form. The existing path. The full path Gets an array containing the characters that are not allowed in file names. An array containing the characters that are not allowed in file names. See also Gets an array containing the characters that are not allowed in path names. An array containing the characters that are not allowed in path names. See also Gets the path root. The path. A string containing the root directory of path, such as "C:\", or if is , or an empty string if path does not contain root directory information. Returns a random folder name or file name. A random folder name or file name. This is equivalent to . Creates a uniquely named, zero-byte temporary file on disk and returns the full path of that file. A containing the full path of the temporary file. This is equivalent to Returns the path of the current system's temporary folder. A containing the path information of a temporary directory. This is equivalent to Gets the connection name of the locally mapped drive. The local path with drive name. This method does not support long path prefixes. String which has the following format \\servername\sharename. Gets the UNC name from the locally mapped path. The local path with drive name. String in which drive name being replaced with it's UNC connection name. Gets the mapped info internal. This method uses NativeMethods.RemoteNameInfo level to retieve more info :) The local path with drive name. Determines whether a path includes a file name extension. The path to search for an extension. true if the specified path has extension; otherwise, false. Gets a value indicating whether the specified path string contains absolute or relative path information. The path to test. true if contains an absolute path; otherwise, false. Check if file or folder name has any invalid characters. File or folder name. True or False Verifies that the specified is valid and does not contain any wildcards. The string to test if it contains a valid path. if is a valid path, otherwise. Verifies that the specified is valid and optionally may contain wildcards. The string to test if it contains a valid path. if set to true wildcards are allowed in the filename part of the path, otherwise the presence of wildcards will render the path invalid. if is a valid path, otherwise. Check if the given path is has the specific long path prefix. File or folder full path. true if has long path prefix, otherwise false. Retrieves the full long (or extended) unicode version of the specified . This method takes care of different path conversions to be usable in Unicode variants of the Win32 funcitons (which are internally used throughout AlphaFS). Regular paths are changed like the following: C:\Somewhere\Something.txt \\?\C:\Somewhere\Something.txt \\Somewhere\Something.txt \\?\UNC\Somewhere\Something.txt Already processed paths are preserved untouched so to avoid mistakes of double prefixing. If the is not an absolute path, or is not rooted, the path of the current directory (and drive) is combined with the specified to form an absolute path. File or Folder name to sanitize and prefix with proper standard. The full long (or extended) unicode version of the specified . Gets the regular path from long prefixed one. i.e. \\?\C:\Temp\file.txt to C:\Temp\file.txt \\?\UNC\Server\share\file.txt to \\Server\share\file.txt The path. Regular form path string. This method does not handle paths with volume names, eg. \\?\Volume{c00fa7c5-63eb-11dd-b6ed-806e6f6e6963}\Folder\file.txt Determines whether the specified path is UNC path. Supports long path prefix. The path. true if the specified path is UNC; otherwise, false. Provides a platform-specific alternate character used to separate directory levels in a path string that reflects a hierarchical file system organization. The alt directory separator char. Equivalent to Provides a platform-specific character used to separate directory levels in a path string that reflects a hierarchical file system organization. The directory separator char. Equivalent to A platform-specific separator character used to separate path strings in environment variables.. The path separator. Equivalent to Provides a platform-specific volume separator character. The volume separator char. Equivalent to The file or directory was not a reparse point. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The info. The context. Contains constants for controlling the kind of access other FileStream objects can have to the same file. This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values. Declines sharing of the current file. Any request to open the file (by this process or another process) will fail until the file is closed. Allows subsequent opening of the file for reading. If this flag is not specified, any request to open the file for reading (by this process or another process) will fail until the file is closed. However, even if this flag is specified, additional permissions might still be needed to access the file. Allows subsequent opening of the file for writing. If this flag is not specified, any request to open the file for writing (by this process or another process) will fail until the file is closed. However, even if this flag is specified, additional permissions might still be needed to access the file. Allows subsequent opening of the file for reading or writing. If this flag is not specified, any request to open the file for reading or writing (by this process or another process) will fail until the file is closed. However, even if this flag is specified, additional permissions might still be needed to access the file. Allows subsequent deleting of a file. Contains information about files in the specified directory. The byte offset of the file within the parent directory. This member is undefined for file systems, such as NTFS, in which the position of a file within the parent directory is not fixed and can be changed at any time to maintain sort order. The time that the file was created. The time that the file was last accessed. The time that the file was last written to. The time that the file was last changed. The absolute new end-of-file position as a byte offset from the start of the file to the end of the file. Because this value is zero-based, it actually refers to the first free byte in the file. In other words, EndOfFile is the offset to the byte that immediately follows the last valid byte in the file. The number of bytes that are allocated for the file. This value is usually a multiple of the sector or cluster size of the underlying physical device. The file attributes. The size of the extended attributes for the file. The short 8.3 file naming convention (for example, FILENAME.TXT) name of the file. The file ID. The name of the file. It is too late to perform the requested operation, since the Transaction has already been committed. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The object that holds the serialized object data. The contextual information about the source or destination. A KTM transaction object for use with the transacted operations in Initializes a new instance of the class, internally using the specified . This method allows the usage of methods accepting a with an instance of . The transaction to use for any transactional operations. Initializes a new instance of the class with a default security descriptor, infinite timeout and no description. Initializes a new instance of the class with a default security descriptor. The time, in milliseconds, when the transaction will be aborted if it has not already reached the prepared state. A user-readable description of the transaction. May be null. Initializes a new instance of the class. The security descriptor. The time, in milliseconds, when the transaction will be aborted if it has not already reached the prepared state. Specify 0 to provide an infinite timeout. A user-readable description of the transaction. May be null. Requests that the specified transaction be committed. The transaction was already committed. The transaction was already aborted. An error occured Requests that the specified transaction be rolled back. This function is synchronous. The transaction was already committed. An error occured Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Gets the safe handle. The safe handle. IntPtr wrapper which can be used as result of Marshal.AllocHGlobal operation. Calls Marshal.FreeHGlobal when disposed or finalized. Creates new instance with zero IntPtr Creates new instance which allocates unmanaged memory of given size Can throw OutOfMemoryException Copies data from a one-dimensional, managed 8-bit unsigned integer array to the unmanaged memory pointer referenced by this instance- The one-dimensional array to copy from. The zero-based index into the array where Copy should start. The number of array elements to copy. Called when object is disposed or finalized. Represents information about a file system entry. Used together with . Initializes a new instance of the class. The WIN32 find data structure. Gets internal WIN32 FIND Data Gets the attributes. The attributes. Gets the name of the file. The name of the file. Gets the size of the file. The size of the file. Gets the 8.3 version of the filename. the 8.3 version of the filename. Gets the time this entry was created. The time this entry was created. Gets the time this entry was last accessed. The time this entry was last accessed. Gets the time this entry was last modified. The time this entry was last modified. Gets a value indicating whether this instance represents a directory. true if this instance represents a directory; otherwise, false. Gets a value indicating whether this instance is definitely a file. true if this instance is file; otherwise, false. Definite file is NOT a directory and NOT a device. Gets a value indicating whether this instance is a reparse point. true if this instance is a reparse point; otherwise, false. Gets a value indicating whether this instance is a mount point. true if this instance is a mount point; otherwise, false. Gets a value indicating whether this instance is a symbolic link. true if this instance is a symbolic link; otherwise, false. Gets the reparse point tag of this entry. The reparse point tag of this entry. The real full path of the file system object/entry. This property is intended to be used with in the future versions of the library to store a full path that is relative to a parent symbolic link or junction point. It will be correctly set by enumerating methods. Parent Symbolic Directory Link Pointed From: C:\Users\Novels\Application Data To: C:\Users\Novels\AppData\Roaming so the entryu info for vlc-qt-interface.ini file will have following values FullPath: C:\Users\Novels\AppData\Roaming\vlc\vlc-qt-interface.ini VirtualFullPath: C:\Users\Novels\Application Data\vlc\vlc-qt-interface.ini Provides a concrete implementation of SafeHandle supporting transactions. Initializes a new instance of the class. When overridden in a derived class, executes the code required to free the handle. true if the handle is released successfully; otherwise, in the event of a catastrophic failure, false. In this case, it generates a ReleaseHandleFailed Managed Debugging Assistant. Enumerator used to enumerate file system entries (i.e. files and directories). The enumerator can only be used to enumerate through the items once, and cannot be reset. Initializes a new instance of the class. A search string, the path which has wildcard characters, for example, an asterisk (*) or a question mark (?). Note that no validation is done whether or not the path specified in searchString actually exists when the enumerator is constructed. This instead occurs during the first call to . Initializes a new instance of the class. The directory or searchString, and the file name, which can include wildcard characters, for example, an asterisk (*) or a question mark (?). if set to true enumerates only directories. Note that no validation is done whether or not the searchString actually exists when the enumerator is constructed. This instead occurs during the first call to . Initializes a new instance of the for enumeration as part of a transaction. The kernel transaction object. The directory or searchString, and the file name, which can include wildcard characters, for example, an asterisk (*) or a question mark (?). Note that no validation is done whether or not the searchString actually exists when the enumerator is constructed. This instead occurs during the first call to . If is , this constructor is equivalent to , leading to non-transacted call. Initializes a new instance of the for enumeration as part of a transaction. The kernel transaction object. The directory or searchString, and the file name, which can include wildcard characters, for example, an asterisk (*) or a question mark (?). if set to true enumerate only directories. Note that no validation is done whether or not the searchString actually exists when the enumerator is constructed. This instead occurs during the first call to . If is , this constructor is equivalent to , leading to non-transacted call. Advances the enumerator to the next file system entry matching the specified pattern. if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection. The collection was modified after the enumerator was created. Filters the current and parent folders WIN32 notation ("." and ".."). This method is not supported. always. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Gets the representing the file system entry at the current position of the enumerator. the representing the file system entry at the current position of the enumerator. The element in the collection at the current position of the enumerator. Gets the element in the collection at the current position of the enumerator. The element in the collection at the current position of the enumerator. Gets or sets a value indicating whether to enumerate only folders. true if only folders should be enumerated; otherwise, false. The file attributes of a file. No attributes set. The file or directory is an archive file or directory. Applications use this attribute to mark files for backup or removal. The file or directory is compressed. For a file, this means that all of the data in the file is compressed. For a directory, this means that compression is the default for newly created files and subdirectories. Reserved; do not use. The handle identifies a directory. The file or directory is encrypted. For a file, this means that all data in the file is encrypted. For a directory, this means that encryption is the default for newly created files and subdirectories. The file or directory is hidden. It is not included in an ordinary directory listing. The file or directory does not have other attributes set. This attribute is valid only when used alone. The file is not to be indexed by the content indexing service. The file data is not available immediately. This attribute indicates that the file data is physically moved to offline storage. This attribute is used by Remote Storage, which is the hierarchical storage management software. Note Applications should not arbitrarily change this attribute. The file or directory is read-only. For a file, applications can read the file, but cannot write to it or delete it. For a directory, applications cannot delete it. The file or directory has an associated reparse point. The file is a sparse file. The file or directory is part of the operating system, or the operating system uses the file or directory exclusively. The file is being used for temporary storage. File systems attempt to keep all of the data in memory for quick access, rather than flushing it back to mass storage. An application should delete a temporary file as soon as it is not needed. The file is a virtual file. Specifies the type of a drive. The drive type cannot be determined. The root path is invalid; for example, there is no volume is mounted at the path. The drive has removable media; for example, a floppy drive, thumb drive, or flash card reader. The drive has fixed media; for example, a hard drive or flash drive. The drive is a remote (network) drive. The drive is a CD-ROM drive. The drive is a RAM disk. Callback delegate used by some of the Directory methods to obtain a of what to do in case of enumeration traversal failure. The path of failed directory of file The exception that occured during operation The remote server or share does not support transacted file operations. Initializes a new instance of the class. Initializes a new instance of the class. The message. Initializes a new instance of the class. The message. The inner exception. Initializes a new instance of the class. The object that holds the serialized object data. The contextual information about the source or destination. Enumeration specifying the different reparse point tags. The entry is not a reparse point Dfs Dfsr Hsm Hsm2 The entry is a mount point Sis The entry is a symbolic link Exposes static methods for creating, moving, and enumerating through directories and subdirectories. As opposed to this class supports the use of extenden length unicode paths, such as \\?\Volume{c00fa7c5-63eb-11dd-b6ed-806e6f6e6963}\Program Files\Internet Explorer. In addition, support for transacted file operation using the kernel transaction manager is provided. (See also ). Note that no methods in this class perform any validation of the supplied paths. They are passed as is to the corresponding native kernel functions, meaning that invalid paths may result in exceptions of a type other than the expected for a certain operation. Creates a new directory. Creates a new directory. If the underlying file system supports security on files and directories, the function applies a default security descriptor to the new directory. The path of the directory to be created. Creates a new directory. If the underlying file system supports security on files and directories, the function applies a security descriptor to the new directory. The path of the directory to be created. The seurity descriptor to apply to the directory Creates a new directory with the attributes of a specified template directory. If the underlying file system supports security on files and directories, the function applies a default security descriptor to the new directory. The new directory retains the other attributes of the specified template directory. The path of the directory to use as a template when creating the new directory. The path of the directory to be created. Creates a new directory with the attributes of a specified template directory. If the underlying file system supports security on files and directories, the function applies the specified security descriptor to the new directory. The new directory retains the other attributes of the specified template directory. The path of the directory to use as a template when creating the new directory. The path of the directory to be created. The seurity descriptor to apply to the directory. The specified directory already exists. One or more intermediate directories do not exist; this function will only create the final directory in the path. Creates a new directory with the attributes of a specified template directory (if one is specified). If the underlying file system supports security on files and directories, the function applies the specified security descriptor to the new directory. The new directory retains the other attributes of the specified template directory. The path of the directory to use as a template when creating the new directory. May be to indicate that no template should be used. The path of the directory to be created. The security descriptor to apply to the newly created directory. May be in which case a default security descriptor will be applied. Creates a new directory as a transacted operation. If the underlying file system supports security on files and directories, the function applies a default security descriptor to the new directory. The transaction to use. The path of the directory to be created. Creates a new directory as a transacted operation. If the underlying file system supports security on files and directories, the function applies a specified security descriptor to the new directory. The transaction to use. The path of the directory to be created. If is , the directory gets a default security descriptor. The access control lists (ACL) in the default security descriptor for a directory are inherited from its parent directory. The target file system must support security on files and directories for this parameter to have an effect. This is indicated when returns an object with set to true. Creates a new directory as a transacted operation, with the attributes of a specified template directory. If the underlying file system supports security on files and directories, the function applies a default security descriptor to the new directory. The new directory retains the other attributes of the specified template directory. The path of the directory to use as a template when creating the new directory. This parameter can be . The directory must reside on the local computer; otherwise, the an exception of type is thrown. The transaction to use. The path of the directory to be created. Creates a new directory as a transacted operation, with the attributes of a specified template directory. If the underlying file system supports security on files and directories, the function applies a specified security descriptor to the new directory. The new directory retains the other attributes of the specified template directory. The path of the directory to use as a template when creating the new directory. This parameter can be . The directory must reside on the local computer; otherwise, the an exception of type is thrown. The transaction to use. The path of the directory to be created. If is , the directory gets a default security descriptor. The access control lists (ACL) in the default security descriptor for a directory are inherited from its parent directory. The target file system must support security on files and directories for this parameter to have an effect. This is indicated when returns an object with set to true. Counts files in a given directory. Uses method. It's way faster than using lots of memory through method. The directory path. The search option. Either top only directory, or subfolders too. if set to true skip on access errors resulted from ACLs protected directories or not accessible reparse points, otherwise a will be thrown. The counted number of files. Deletes an existing directory. Deletes an existing empty directory. The path of the directory to be removed. This path must specify an empty directory, and the calling process must have delete access to the directory. is Deletes the specified directory and, if indicated, any subdirectories in the directory. The name of the directory to remove. true to remove directories, subdirectories, and files in path; otherwise, false. Deletes the specified directory and, if indicated, any subdirectories in the directory. The name of the directory to remove. true to remove all subdirectories and files recursively; otherwise, false only the top level empty directory. if set to true overrides read only attribute of files and directories. Deletes an existing empty directory as a transacted operation. The path of the directory to be removed. The path must specify an empty directory, and the calling process must have delete access to the directory. The path of the directory to be removed. This path must specify an empty directory, and the calling process must have delete access to the directory. The directory must reside on the local computer; otherwise, the function throws . The transaction to use or is The directory does not reside on the local computer. The transaction object is not valid for this operation. Determines whether the given path refers to an existing directory on disk. Determines whether the given path refers to an existing directory on disk. The path to test. true if path refers to an existing directory; otherwise, false. Possible performance improvement may be achieved by utilizing FINDEX_SEARCH_OPS.FindExSearchLimitToDirectories. Determines whether the given path refers to an existing directory on disk as part of a transaction. The transaction. The path to test. true if path refers to an existing directory; otherwise, false. Gets a object that encapsulates the access control list (ACL) entries for a specified directory. Gets a object that encapsulates the access control list (ACL) entries for the specified directory. The path to a directory containing a object that describes the file's access control list (ACL) information. A object that encapsulates the access control rules for the file described by the parameter. Gets a object that encapsulates the specified type of access control list (ACL) entries for a particular directory. The path to a directory containing a object that describes the directory's access control list (ACL) information. One (or more) of the values that specifies the type of access control list (ACL) information to receive. A object that encapsulates the access control rules for the directory described by the parameter. Gets the creation date and time, in local time, of a directory. Gets the creation date and time, in local time, of a directory. The path of the directory. A structure set to the creation date and time for the specified directory. This value is expressed in local time. Gets the creation date and time, in Coordinated Universal Time (UTC) format, of a directory. Gets the creation date and time, in Coordinated Universal Time (UTC) format, of a directory. The path of the directory. A structure set to the creation date and time for the specified directory. This value is expressed in UTC time. Returns the date and time the specified file or directory was last accessed. Returns the date and time the specified file or directory was last accessed. The file or directory for which to obtain creation date and time information. A structure set to the date and time that the specified file or directory was last accessed. This value is expressed in local time. Returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last accessed. The path. A structure set to the date and time that the specified file or directory was last accessed. This value is expressed in UTC time. Returns the date and time the specified file or directory was last written to. Returns the date and time the specified file or directory was last written to. The path. A structure set to the date and time that the specified file or directory was last written to. This value is expressed in local time. Returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last written to. Returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last written to. The file or directory for which to obtain write date and time information. A structure set to the date and time that the specified file or directory was last written. This value is expressed in UTC time. Returns the creation date and time of the specified file or directory as part of a transaction. The transaction to use. The file or directory for which to obtain creation date and time information. A structure set to the creation date and time for the specified file or directory. This value is expressed in local time. Returns the creation date and time, in coordinated universal time (UTC), of the specified file or directory as part of a transaction. The file or directory for which to obtain creation date and time information. The transaction to use. A structure set to the creation date and time for the specified file or directory. This value is expressed in UTC time. Returns the date and time the specified file or directory was last accessed as part of a transaction. The file or directory for which to obtain creation date and time information. The transaction to use. A structure set to the date and time that the specified file or directory was last accessed. This value is expressed in local time. Returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last accessed as part of a transaction. The path. A structure set to the date and time that the specified file or directory was last accessed. This value is expressed in UTC time. The transaction to use. Returns the date and time the specified file or directory was last written to as part of a transaction. The path. The transaction to use. A structure set to the date and time that the specified file or directory was last written to. This value is expressed in local time. Returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last written to as part of a transaction. The file or directory for which to obtain write date and time information. The transaction to use. A structure set to the date and time that the specified file or directory was last written. This value is expressed in UTC time. Gets the current working directory of the application. A string containing the path of the current working directory. The caller does not have the required permission. Sets the application's current working directory to the specified directory. The path to which the current working directory is set. An IO error occurred. is a zero-length string, contains only white space, or contains one or more invalid characters as defined by InvalidPathChars. is The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters and file names must be less than 260 characters. The caller does not have the required permission to access unmanaged code. The specified path was not found. The specified directory was not found. Applies access control list (ACL) entries described by a DirectorySecurity object to the specified directory. Note that unlike this method does not automatically determine what parts of the specified instance has been modified. Instead, the parameter is used to specify what entries from to apply to . A directory to add or remove access control list (ACL) entries from. A object that describes an ACL entry to apply to the directory described by the parameter. One or more of the values that specifies the type of access control list (ACL) information to set. Moves a file or a directory and its contents to a new location. Moves a file or a directory and its contents to a new location. The path of the file or directory to move. The path to the new location for . If is a file, then must also be a file name. For more options, see the Move methods of . Moves a file or a directory and its contents to a new location as part of a transaction. The transaction. The path of the file or directory to move. The path to the new location for . If is a file, then must also be a file name. For more options, see the Move methods of . Gets the names of subdirectories in the specified directory. The directory to search. An array of type String containing the names of subdirectories in . Gets an array of directories matching the specified search pattern from the current directory. The directory to search. The search string to match against the names of directories in . The parameter cannot end in two periods ("..") or contain two periods ("..") followed by or , nor can it contain any of the characters in . A String array of directories matching the search pattern. Directory names include the full path. Gets an array of directories contained within a directory or drive. Gets an array of directories matching the specified search pattern from the current directory, using a value to determine whether to search subdirectories. The directory to search. The search string to match against the names of directories in . The parameter cannot end in two periods ("..") or contain two periods ("..") followed by or , nor can it contain any of the characters in . One of the values that specifies whether the search operation should include all subdirectories or only the current directory. A String array of directories matching the search pattern. Directory names include the full path. This method may consume a lot of memory if a large tree of files, directories and subdirectories are searched. Consider using instead if possible. Gets the names of subdirectories in the specified directory. The search is performed as part of a transaction. The transaction. The directory to search. An array of type String containing the names of subdirectories in . Gets an array of directories matching the specified search pattern from the current directory. The search is performed as part of a transaction. The transaction. The directory to search. The search string to match against the names of directories in . The parameter cannot end in two periods ("..") or contain two periods ("..") followed by or , nor can it contain any of the characters in . A String array of directories matching the search pattern. Directory names include the full path. Gets an array of directories matching the specified search pattern from the current directory, using a value to determine whether to search subdirectories. The search is performed as part of a transaction. The transaction. The directory to search. The search string to match against the names of directories in . The parameter cannot end in two periods ("..") or contain two periods ("..") followed by or , nor can it contain any of the characters in . One of the values that specifies whether the search operation should include all subdirectories or only the current directory. A String array of directories matching the search pattern. Directory names include the full path. This method may consume a lot of memory if a large tree of files, directories and subdirectories are searched. Consider using instead if possible. Returns the names of files in the specified directory. The directory from which to retrieve the files. A String array of file names in the specified directory. Returns the names of files in the specified directory that match the specified search pattern. The directory to search. The search string to match against the names of files in path. The parameter cannot end in two periods ("..") or contain two periods ("..") followed by or , nor can it contain any of the characters in . A String array containing the names of files in the specified directory that match the specified search pattern. Retrieves the names of files contained within a directory. Returns the names of files in the specified directory that match the specified search pattern, using a value to determine whether to search subdirectories. The directory to search. The search string to match against the names of files in path. The parameter cannot end in two periods ("..") or contain two periods ("..") followed by or , nor can it contain any of the characters in . One of the values that specifies whether the search operation should include all subdirectories or only the current directory. A String array containing the names of files in the specified directory that match the specified search pattern. File names include the full path. This method may consume a lot of memory if a large tree of files, directories and subdirectories are searched. Consider using instead if possible. Returns the names of files in the specified directory. The search will be performed as part of a transaction. The transaction. The directory from which to retrieve the files. A String array of file names in the specified directory. Returns the names of files in the specified directory that match the specified search pattern. The search will be performed as part of a transaction. The transaction. The directory to search. The search string to match against the names of files in path. The parameter cannot end in two periods ("..") or contain two periods ("..") followed by or , nor can it contain any of the characters in . A String array containing the names of files in the specified directory that match the specified search pattern. Returns the names of files in the specified directory that match the specified search pattern, using a value to determine whether to search subdirectories. The search will be performed as part of a transaction. The transaction. The directory to search. The search string to match against the names of files in path. The parameter cannot end in two periods ("..") or contain two periods ("..") followed by or , nor can it contain any of the characters in . One of the values that specifies whether the search operation should include all subdirectories or only the current directory. A String array containing the names of files in the specified directory that match the specified search pattern. File names include the full path. This method may consume a lot of memory if a large tree of files, directories and subdirectories are searched. Consider using instead if possible. Returns the volume information, root information, or both for the specified path. The path of a file or directory. A string containing the volume information, root information, or both for the specified path. Returns the names of all files and subdirectories in the specified directory. The directory for which file and subdirectory names are returned. A String array containing the names of file system entries in the specified directory. Returns an array of file system entries matching the specified search criteria. The directory for which file and subdirectory names are returned. The search string to match against the names of files in path. The parameter cannot end in two periods ("..") or contain two periods ("..") followed by or , nor can it contain any of the characters in . A String array containing the names of file system entries matching the specified pattern in the specified directory. Returns an array of file system entries matching the specified search criteria. The directory for which file and subdirectory names are returned. The search string to match against the names of files in path. The parameter cannot end in two periods ("..") or contain two periods ("..") followed by or , nor can it contain any of the characters in . The search option. A String array containing the names of file system entries matching the specified pattern in the specified directory. Returns the names of all files and subdirectories in the specified directory. The file system entries are retrieved as part of a transaction. The transaction. The directory for which file and subdirectory names are returned. A String array containing the names of file system entries in the specified directory. Returns the names of all files and subdirectories in the specified directory. The file system entries are retrieved as part of a transaction. The transaction. The directory for which file and subdirectory names are returned. The search pattern. A String array containing the names of file system entries in the specified directory. Returns an array of file system entries matching the specified search criteria. The file system entries are retrieved as part of a transaction. The transaction. The directory for which file and subdirectory names are returned. The search string to match against the names of files in path. The parameter cannot end in two periods ("..") or contain two periods ("..") followed by or , nor can it contain any of the characters in . The search option. A String array containing the names of file system entries matching the specified pattern in the specified directory. Enumerates file system entries contained in a specified directory as instances. Enumerates all file system entries as instances in the specified . This is a convenience method for using the for enumeration. The directory path containing the file system entries to enumerate. An enumerable containing the file system entries for the specified Enumerates the file system entries in the specified matching the specified as instances. This is a convenience method for using the for enumeration. The directory or path, and the file name, which can include wildcard characters, for example, an asterisk (*) or a question mark (?). The search string to match against the names of files in path. The parameter cannot end in two periods ("..") or contain two periods ("..") followed by or , nor can it contain any of the characters in . An enumerable containing the file system entries for the specified Enumerates all file system entries as instances in the specified , optionally enumerating directories only. The directory or path, and the file name, which can include wildcard characters, for example, an asterisk (*) or a question mark (?). The search pattern. The search option. An enumerable containing the file system entries for the specified This is a convenience method for using the for enumeration. Enumerates the file system entries in the specified matching the specified as instances, optionally enumerating directories only. The directory or path, and the file name, which can include wildcard characters, for example, an asterisk (*) or a question mark (?). The search string to match against the names of files in path. The parameter cannot end in two periods ("..") or contain two periods ("..") followed by or , nor can it contain any of the characters in . if set to true enumerate only directories. The search options. An enumerable containing the file system entries for the specified This is a convenience method for using the for enumeration. Enumerates all file system entries as instances in the specified as part of a transaction. The transaction. The directory or path containing the file system entries to enumerate. An enumerable containing the file system entries for the specified This is a convenience method for using the for enumeration. Enumerates the file system entries in the specified matching the specified as instances as part of a transaction. The transaction. The directory or path, and the file name, which can include wildcard characters, for example, an asterisk (*) or a question mark (?). The search string to match against the names of files in path. The parameter cannot end in two periods ("..") or contain two periods ("..") followed by or , nor can it contain any of the characters in . An enumerable containing the file system entries for the specified This is a convenience method for using the for enumeration. Enumerates all file system entries as instances in the specified as part of a transaction, optionally enumerating directories only. The transaction. The directory path The search pattern. The search option. An enumerable containing the file system entries for the specified This is a convenience method for using the for enumeration. Enumerates the file system entries in the specified matching the specified as instances as part of a transaction, optionally enumerating directories only. The transaction. The directory or path, and the file name, which can include wildcard characters, for example, an asterisk (*) or a question mark (?). The search string to match against the names of files in path. The parameter cannot end in two periods ("..") or contain two periods ("..") followed by or , nor can it contain any of the characters in . if set to true enumerate only directories. The search option. An enumerable containing the file system entries for the specified This is a convenience method for using the for enumeration. Enumerates the file system entries in the specified matching entries with the as instances. This method gives more control over the progress and exception handling. Optional kernel transaction object. Pass NULL for non-transacted call. The directory path where to start enumeration. Use to get beyond 254 chars limit. The search pattern prefix, wildcards, or a mixture. Whether to search files in the specified directory only, or all subdirectories recursively. if set to true [directories only]. Optional enumeration exception handler. You can subscribe to exceptions and make decisions about them on the fly. The list of exceptions to skip. Useful when dealing with protected directories. Retrieves the parent directory of the specified path, including both absolute and relative paths. The path for which to retrieve the parent directory. The parent directory or a reference if the path is the root. Gets the properties of the particular folder without following any symbolic links or mount points. Properties include aggregated info from of each encountered file system object. Plus additional ones: Total, File, Size, Error Total: is the total number of enumerated objects. File: is the total number of files. File is considered when object is neither nor . Size: is the total size of enumerated objects. Error: is the total number of errors encountered during request. Directory: is an object which has attribute without one. The transaction. For a non transacted operation pass NULL. The target directory. The search option. Either top level or subfolders too. if set to true continue on errors. A dictionary mapping the keys mentioned above to their respective aggregated values. Enables encryption of the specified directory and the files in it. It does not affect encryption of subdirectories below the indicated directory. The name of the directory for which to enable encryption. Disables encryption of the specified directory and the files in it. It does not affect encryption of subdirectories below the indicated directory. The name of the directory for which to disable encryption. Retrieves information about files in the directory specified by . No specific access rights is required to query this information. File reference numbers, also called file IDs, are guaranteed to be unique only within a static file system. They are not guaranteed to be unique over time, because file systems are free to reuse them. Nor are they guaranteed to remain constant. For example, the FAT file system generates the file reference number for a file from the byte offset of the file's directory entry record (DIRENT) on the disk. Defragmentation can change this byte offset. Thus a FAT file reference number can change over time. Requires Windows Vista or Windows Server 2008 or later. A path to a directory from which to retrieve information. An enumeration of records for each file system entry in the specified diretory. Retrieves information about files in the directory specified by using the specified No specific access rights is required to query this information. File reference numbers, also called file IDs, are guaranteed to be unique only within a static file system. They are not guaranteed to be unique over time, because file systems are free to reuse them. Nor are they guaranteed to remain constant. For example, the FAT file system generates the file reference number for a file from the byte offset of the file's directory entry record (DIRENT) on the disk. Defragmentation can change this byte offset. Thus a FAT file reference number can change over time. Requires Windows Vista or Windows Server 2008 or later. A path to a directory from which to retrieve information. The transaction to use for this operation. An enumeration of records for each file system entry in the specified diretory. Retrieves information about files in the directory specified by using the specified and share mode. No specific access rights is required to query this information. File reference numbers, also called file IDs, are guaranteed to be unique only within a static file system. They are not guaranteed to be unique over time, because file systems are free to reuse them. Nor are they guaranteed to remain constant. For example, the FAT file system generates the file reference number for a file from the byte offset of the file's directory entry record (DIRENT) on the disk. Defragmentation can change this byte offset. Thus a FAT file reference number can change over time. Requires Windows Vista or Windows Server 2008 or later. A path to a directory from which to retrieve information. The transaction to use for this operation. The sharing mode with which to open a handle to the directory. An enumeration of records for each file system entry in the specified diretory. Retrieves information about files in the directory specified by using the specified share mode. No specific access rights is required to query this information. File reference numbers, also called file IDs, are guaranteed to be unique only within a static file system. They are not guaranteed to be unique over time, because file systems are free to reuse them. Nor are they guaranteed to remain constant. For example, the FAT file system generates the file reference number for a file from the byte offset of the file's directory entry record (DIRENT) on the disk. Defragmentation can change this byte offset. Thus a FAT file reference number can change over time. Requires Windows Vista or Windows Server 2008 or later. A path to a directory from which to retrieve information. The sharing mode with which to open a handle to the directory. An enumeration of records for each file system entry in the specified diretory. Retrieves information about files in the directory handle specified. No specific access rights is required to query this information. File reference numbers, also called file IDs, are guaranteed to be unique only within a static file system. They are not guaranteed to be unique over time, because file systems are free to reuse them. Nor are they guaranteed to remain constant. For example, the FAT file system generates the file reference number for a file from the byte offset of the file's directory entry record (DIRENT) on the disk. Defragmentation can change this byte offset. Thus a FAT file reference number can change over time. Requires Windows Vista or Windows Server 2008 or later. An open handle to the directory from which to retrieve information. An enumeration of records for each file system entry in the specified diretory.