- Issue #451: Add overloaded method for
File.GetSize
to retrieve the size of all streams. - Issue #454: Add method
Directory.GetSize
to return the size of all alternate data streams of the specified directory and its files. - Issue #464: Add overloaded methods for
Directory.Copy/Move
supportingDirectoryEnumerationFilters
. - Issue #465: Add overloaded methods for
File.Copy/Move
supporting retry. - Issue #466: Add properties
ErrorRetry
andErrorRetryTimeout
toDirectoryEnumerationFilters
class. - Issue #467: Add property
CopyOptions.CopyTimestamp
.
- Issue #426: Correct casing of enum
STREAM_ATTRIBUTES
- Issue #459: Modify method
Directory.CreateDirectoryCore
to returnnull
as well asDirectoryInfo
instance. - Issue #461: Remove text
:$DATA
fromAlternateDataStream.FullPath
property. - Issue #462: Add
IEquatable<T>
to applicable info classes. - Issue #463: Add
[Serializable]
attribute to applicable info classes. - Issue #470: Change AlphaFS implementations of method
DirectoryInfo.Create
to returnDirectoryInfo
instance instead of void. - Issue #471: Add overloaded method
Directory.CountFileSystemObjects
supportingDirectoryEnumerationFilters
. - Issue #472: Add method
DirectoryInfo.ExistsJunction
. - Issue #473: Change AlphaFS implementations of method
File.Copy
to returnCopyMoveResult
instance instead ofvoid
. - Issue #475: Prevent
File.SetFsoDateTimeCore
from throwingUnauthorizedAccessException
. - Issue #477: Move method
Path.GetMappedConnectionName
toHost
class. - Issue #478: Move method
Path.GetMappedUncName
toHost
class. - Added missing overloaded methods regarding timestamps and symbolic links.
- Marked
Directory.Copy
/DirectoryInfo.Copy
methods using parametersoverwrite
andpreserveDates
as obsolete. Use one of theCopyOptions
. - Fixed a
Directory.Move
unit test creating endless drive mappings on error. - Issue #504: Move to Cake build system.
- Issue #502: Upgrade to MSTest v2.
- Issue #501: Documentation generated using DocFX.
- Issue #482: AlphaFS .NET Core compatibility (netstandard 2.0 support added)
- Issue #426: Correct casing of enum
STREAM_ATTRIBUTES
- Issue #461: Remove text
:$DATA
fromAlternateDataStream.FullPath
property. - Issue #477: Move method
Path.GetMappedConnectionName
toHost
class. - Issue #478: Move method
Path.GetMappedUncName
toHost
class. - Issue #500: Drop support for .NET framework versions prior to .NET 4.5
- Issue #488:
Path.CheckInvalidPathChars
inPath.Helpers.cs
should be case insensitive (Thx GuyTe) - Issue #489:
File.Copy
fails withDirectoryNotFoundException
on long path (Thx CyberSinh)
- Issue #487: Ensure replace is done case-insensitive (Thx Genbox)
- Issue #479:
File.Move
on a file opened withFileShare.Delete
succeeds but throwsIOException
. (Thx oguimbal) - Issue #480:
Directory.Delete(, true, true)
occasionally throwsDirectoryNotEmptyException
.
- Issue #468: Method
Directory.CopyTimestamps
should throwDirectoryNotFoundException
. - Issue #469: Method
Directory.GetFileIdInfo
should throwDirectoryNotFoundException
. - Issue #474: Method
Directory.EnumerateAlternateDataStreams
should throwDirectoryNotFoundException
. - Issue #476: Method
Directory.GetChangeTime
should throwDirectoryNotFoundException
.
- Issue #456: Methods
Directory/File.Copy
throwDeviceNotReadyException
when usingGLOBALROOT
source path. (Thx VladimirK69) - Issue #457:
FileInfo.Exists
istrue
when instance is created from a directory path. - Issue #458:
Directory.Copy
sometimes does not create the file's parent folder, throwingSystem.IO.DirectoryNotFoundException
.
- Added unit tests for GLOBALROOT source path so that it can never happen again!
- Issue #434:
Directory.Move
operation worked in v2.0.1, but now fails in v.2.2.1 (Thx warrenlbrown) - Issue #436:
Directory.GetFiles()
with relative path (Thx stellarbear) - Issue #437: Fixed
PathTooLongException
for boundary case of directory name length inPath.NormalizePath
(Thx okrushelnitsky) - Issue #441:
InvalidOperationException
onDirectory.EnumerateFileSystemEntries()
(Thx CyberSinh) - Issue #444: Exception when moving or renaming a folder after updating from 2.1.3 to 2.2.1 (Thx mlaily)
- Issue #149: Split unit-tests.
- Fixed all Sandcastle Help File Builder warnings.
- Because of bug fixes, the correct source-/destination folder is now shown in exceptions thrown from Directory/File.Copy/Move methods, instead of always showing the source folder path.
- Improved some unit tests that would fail when a removable drive is already removed but there's still a cached reference.
- Issue #433: Directory.ExistsDriveOrFolderOrFile fails on global root path, so a simple file copy from a shadow copy fails with "device GLOBALROOT not ready" (Thx CyberSinh)
- Issue #268: There are multiple warnings when building the documentation.
- Issue #286: Property
FileSystemEntryInfo.AlternateFileName
is always an empty string. - Issue #292:
CopyOptions.CopySymbolicLink
not working in 2.1.2 (Thx v2kiran) - Issue #325:
DeleteEmptySubdirectories
(withrecursive=true
) throwsSystem.IO.DirectoryNotFoundException
(Thx kryvoplias) - Issue #328: Several instances of
ArgumentException.ParamName
not set/used correctly (Thx elgonzo) - Issue #330: Correct the parameter order for Privilege class constructors using the
ArgumentNullException
. - Issue #339:
Directory/File.Encrypt/Decrypt
should restore read-only attribute. - Issue #340:
DirectoryReadOnlyException
inherits fromSystem.IO.IOException
, wrong? - Issue #344:
Directory.Copy
throwsUnauthorizedAccessException
"The target file is a directory, not a file", while it is a file. - Issue #349:
File.GetFileSystemEntryInfoCore
should throwDirectory/FileNotFoundException
, depending onisFolder
argument. - Issue #369:
Directory.EnumerateFileSystemEntryInfos
does not return subdirectories with spaces as name. (Thx Lupinho) - Issue #371: Fix
.gitignore
to accommodate new directory structure in AlphaFS.UnitTest project. (Thx damiarnold) - Issue #372:
SetFsoDateTimeCore
should always useBackupSemantics
. (Thx damiarnold) - Issue #374: Initializing
DriveInfo
instance with only a letter throwsSystem.ArgumentException
. - Issue #375: What is the expected result of
Path.LocalToUnc()
? (Thx damiarnold) - Issue #376:
Path.LocalToUnc(path, true)
does not return UNC path in long path form. (Thx damiarnold) - Issue #379:
Path.LocalToUnc()
isn't handling trailing directory separators for mapped drives. (Thx damiarnold) - Issue #381: Change property
ByHandleFileInfo.VolumeSerialNumber
fromint
tolong
. - Issue #386:
Network.Host.EnumerateDrives()
returns invalid data. - Issue #400:
Directory.CopyDeleteCore
creates destination folder when source folder does not exist. - Issue #412: Method
Volume.GetVolumeDeviceName
returns wrong result. - Issue #417: Using a file opened in append mode will fail after a gc occurs (Thx elgonzo)
- Issue #417:
File.OpenRead
method overloads do not useFileShare.Read
(Thx elgonzo) - Issue #427:
System.IO.FileSystemInfo.Refresh()
is public; but AlphaFSFileSystemInfo.Refresh()
is protected (Thx elgonzo)
- Issue #212: Provide a way to retrieve errors when you choose to
ContinueOnException
- Issue #314: Added Feature:
Directory.GetFileSystemEntryInfo
(Thx besoft) - Issue #322: Search files/folders using multiple filters. (Thx besoft)
- Issue #336: Implement methods for
Directory
class:CreateJunction
,DeleteJunction
andExistsJunction
. - Issue #338: Add convenience method
Directory.IsEmpty
- Issue #342: Add instance method:
FileInfo.IsLocked()
- Issue #343: Add method
File.GetProcessForFileLock
- Issue #347: Implement method
Directory.CreateSymbolicLink
- Issue #348: Implement method
Directory.GetLinkTargetInfo
- Issue #351: Enable copying of Directory symbolic links.
- Issue #353: Modify method
Directory.GetFileSystemEntryInfo
to returnFileSystemEntryInfo
structure for directories supporting also root directories, e.g.,C:\
(Thx besoft) - Issue #354: Add methods
File.GetFileId
andDirectory.GetFileId
to return a unique file identifier. (Thx besoft) - Issue #370: Relative path from a full path (Thx QbProg)
- Issue #373: Improve method
Directory.CreateDirectory
to allow creating a folder consisting only of spaces. - Issue #414: Add additional
Network.Host
methods. - Issue #415: Added
ProcessContext
static class to determine the context of the current process. - Issue #422: Add
Copy-FileWithProgress.ps1
demonstrating file copy with progress report. - Issue #423: Add
Copy-DirectoryWithProgress.ps1
demonstrating directory copy with progress report.
- Issue #273: Improve methods
Directory/File.CopyMoveCore
: Make code recursive-aware, skip additional path checks and validations. - Issue #274: Improve methods
Directory/File.CopyMoveCore
: Improve detection of same volume. - Issue #275: Improve methods
Directory/File.CopyMoveCore
: Eliminate recursion. - Issue #277:
Directory.DeleteDirectoryCore()
: Eliminate recursion. - Issue #278:
Directory.DeleteEmptySubdirectoriesCore()
: Eliminate recursion. - Issue #303:
Path.Constants.cs
: Don't useCurrentCulture
(Thx HugoRoss) - Issue #306: Include
ShareInfoLevel.Info502
and set as a fallback inGetShareInfoCore()
(Thx damiarnold) - Issue #326: Add parameter
bool preserveDates
and created overloadedDirectory.Copy
methods to support this. - Issue #331: Rename method
File/Directory.TransferTimestamps
toCopyTimestamps
. - Issue #335: Add overloaded methods to
File/Directory.TransferTimestamps
to apply to ReparsePoint. - Issue #341: Improve usage of method
NativeError.ThrowException
andMarshal.GetLastWin32Error
- Issue #345:
AlreadyExistsException
should only throw message from 1 error. - Issue #350: Add overloaded methods
Directory.GetFileSystemEntryInfo
- Issue #352: Ignore
NonInterpretedPathPrefix
in methods:Path.GetFullPathCore
andPath.GetLongPathCore
(Thx besoft) - Issue #355: Methods throwing an
IOException
due to error code 17 (ERROR_NOT_SAME_DEVICE
) now throw a specific exception (NotSameDeviceException
) - Issue #357: Added new Windows 10 property:
DirectAccess
(Win32FILE_DAX_VOLUME
) toVolumeInfo
class. - Issue #360: Add overloaded
Directory.EnumerateDirectories
methods that supportDirectoryEnumerationFilters
. (Thx SignFinder) - Issue #364: Avoid unnecessary allocations from Random construction in FileSystemInfo (Thx danmosemsft)
- Issue #377: Rename enum member:
OperatingSystem.EnumOsName.WindowsServer
to:OperatingSystem.EnumOsName.WindowsServer2016
- Issue #378:
DiskSpaceInfo
should respectCultureInfo.CurrentCulture
for number formatting. - Issue #385: Correct applied fileSystemRights operator in method
File.Create()
. - Issue #387: Replace
handle.IsInvalid
checks with a call to methodNativeMethods.IsValidHandle()
. - Issue #388: Change method
Network.Host.EnumerateDrives()
return type fromstring
toDriveInfo
. - Issue #394: Improve percentage output of properties
DiskSpaceInfo
-AvailableFreeSpacePercent
andUsedSpacePercent
- Issue #401: CreateDirectory
ERROR_ACCESS_DENIED
reports parent folder. - Issue #402: Remove long path prefix from
NativeError.ThrowException
messages with paths. - Issue #408: Add
FileSystemEntryInfo.Extension
string property. - Issue #416: Rename property
DeviceInfo.Class
toDeviceInfo.DeviceClass
- Issue #331: Rename method
File/Directory.TransferTimestamps
toCopyTimestamps
. Currently non-breaking, the old methods are still there. - Issue #340:
DirectoryReadOnlyException
inherits fromSystem.IO.IOException
, wrong? - Issue #350: Add overloaded methods
Directory.GetFileSystemEntryInfo
. Current code to retrieve a directory usingFile.GetFileSystemEntryInfo
will now fail. UseDirectory.GetFileSystemEntryInfo
instead. - Issue #377: Rename enum member:
OperatingSystem.EnumOsName.WindowsServer
to:OperatingSystem.EnumOsName.WindowsServer2016
- Issue #381: Change property
ByHandleFileInfo.VolumeSerialNumber
fromint
tolong
. - Issue #388: Change method
Network.Host.EnumerateDrives()
return type fromstring
toDriveInfo
. - Issue #391: Mark AlphaFS enumerating methods that use both
searchPattern
andDirectoryEnumerationFilters
as obsolete. - Issue #416: Rename property
DeviceInfo.Class
toDeviceInfo.DeviceClass
- Issue #288:
Directory.Exists
on root drive problem has come back with recent updates (Thx warrenlbrown) - Issue #289:
Alphaleonis.Win32.Network.Host.GetShareInfo
doesn't work since 2.1.0 (Thx Schoolmonkey/damiarnold) - Issue #296: Folder rename (casing) throws IOException with HResult
ERROR_SAME_DRIVE
(Thx doormalena) - Issue #297: Incorrect domain returned from
Host.EnumerateDomainDfsRoot
when specifying domain (Thx damiarnold) - Issue #299:
FileInfo.MoveTo
andDirectoryInfo.MoveTo
throwArgumentNullException
on empty destination path (Thx doormalena) - Issue #312:
Volume.EnumerateVolumes
skips first volume (Thx springy76) - Issue #313:
GetHostShareFromPath()
fails with spaces in share name (Thx damiarnold) - Issue #320: Minor changes in comments in
Win32Errors.cs
to eliminate compiler warnings. (Thx besoft) - Issue #321:
DirectoryInfo.CopyToMoveToCore()
callsPath.GetExtendedLengthPathCore()
withoutTransaction
parameter.
- Issue #270: Method
File.GetFileSystemEntryInfoCore
uses wildcard ? (questionmark) instead of * (asterisk) - Issue #276:
Directory.DeleteDirectory()
: Method can get stuck in infinite loop. - Issue #279: The unit tests for CRC32/64 are failing.
- Issue #3: Added methods for backing up and restoring encrypted files:
File.ImportEncryptedFileRaw
File.ExportEncryptedFileRaw
Directory.ImportEncryptedDirectoryRaw
Directory.ExportEncryptedDirectoryRaw
- Issue #2 : Unit tests for methods:
File.OpenRead()
,File.OpenText()
andFile.Replace()
are missing. - Issue #101: The release now also contains a build targetting .NET 4.5.2.
- Issue #109: Add overloaded methods for
Host.EnumerateShares()
. - Issue #112: Add
CreationTimeUtc
,LastAccessTimeUtc
andLastWriteTimeUtc
to "Info" classes. - Issue #119: Fix
Path.IsLocalPath()
issues. - Issue #125: AlphaFS is now CLSCompliant.
- Issue #127: Modify method
Volume.QueryDosDevice()
so that is doesn't rely onPath.IsLocalPath()
anymore. - Issue #130: Modify method
Path.LocalToUnc()
so that is doesn't rely onPath.IsLocalPath()
anymore. - Issue #131: Modify method
Path.GetPathRoot()
to handle UNC paths in long path format. - Issue #132: Modify method
VolumeInfo()
constructor to better handle input paths. - Issue #133: Add missing unit test
Host.GetHostShareFromPath()
. - Issue #134: Improved upon
FindFileSystemEntryInfo.FindFirstFile()
when throwingDirectory-/FileNotFoundException()
. - Issue #138: Modify
GetShareInfo()
to useSafeGlobalMemoryBufferHandle
instead ofIntPtr
. - Issue #139: Modify
GetDfsInfoInternal()
to useSafeGlobalMemoryBufferHandle
instead ofIntPtr
. - Issue #141: Remove obsolete Resources (resx) string messages.
- Issue #142: Move literal strings to Resources (resx).
- Issue #144: Add
DirectoryInfo.EnumerateXxx()
methods with support forDirectoryEnumerationOptions
enum. - Issue #151: Add
Directory.EnumerateXxx()
methods with support forDirectoryEnumerationOptions
- andPathFormat
enum. - Issue #154: Modify private method
FindFileSystemEntryInfo.FindFirstFile()
to report the full path on Exception. - Issue #146: Add method
DirectoryInfo.EnumerateAlternateDataStreams()
. - Issue #147: Add overloaded methods to set Reparse Point Timestamp. (Thx rstarkov)
- Issue #150: Enhancement:
File.IsLocked()
- Issue #158: Add SuppressUnmanagedCodeSecurity attribute to [DllImport] tag.
- Issue #184:
File.CreateSymbolicLink()
should throwPlatformNotSupportedException()
if OS < Vista. - Issue #186: Replace WIN32 API
NativeMethods.GetVersionEx()
withNativeMethods.RtlGetVersion()
. - Issue #188: Make
ShareInfo
class property setters private:ShareType
,ResourceType
. - Issue #189: Improve method
Utils.UnitSizeToText()
. - Issue #190: Add overloaded methods for
File/Directory.Get/SetAccessControl()
that acceptSafeFileHandle
. - Issue #191: Make class
BackupFileStream
sealed. - Issue #192: Add
null
-checks toSafeHandle.IsInvalid
usage. - Issue #193: Use unicode version of WIN32 API
OpenEncryptedFileRaw()
. - Issue #194: Add bitshift for Marshal.GetHRForException(ex) usage.
- Issue #195: Add useful FileAttributes as properties to
FileSystemEntryInfo
class. - Issue #199: Change
FindFileSystemEntryInfo.FindFirstFile()
to show actual path instead of inputpath on access error. - Issue #214: Howto
Get-Filehash
. - Issue #235: Implement unicode versions of methods: CM_Connect_Machine and CM_Get_Device_ID_Ex.
- Issue #239: Enable long path support for
File.CreateSymbolicLink()
source parameter. - Issue #240: Add
KeepDotOrSpace
toGetFullPathOptions
enum. - Issue #241: Add method
Path.GetFullPath()
overload that supportsGetFullPathOptions
enum. - Issue #245: Implement CRC-32/64 (Thanks to Damien Guard for implementing his code).
- Issue #247: Add method
FileInfo.GetHash()
. - Issue #251: Implement unicode versions of
Directory.GetCurrentDirectory()
andDirectory.SetCurrentDirectory()
. - Issue #266: Add PowerShell script:
Enumerate-FileSystemEntryInfos.ps1
- Issue #50 :
Path.GetLongPath()
does not prefix on "C:", should it? - Issue #60 : Remove all use of "Problematic" methods such as
DangerousAddRef
andDangerousGetHandle()
. - Issue #160:
File.CreateSymbolicLink()
creates shortcut with no target. (Thx martin-john-green) - Issue #162:
File.AppendAllLines()
concatenates content into one line. (Thx pavelhritonenko) - Issue #166:
File.Exists
&Directory.Exists
fail when path has leading space(s). - Issue #168: Error on
File.Open()
with access-mode Append? - Issue #169:
DirectoryInfo .ToString()
returns path with\\UNC
prefix. - Issue #176: At
DirectoryInfo.GetFileSystemInfos()
, Long path prefix of GLOBALROOT path is missing. (Thx diontools) - Issue #179:
Path.GetFileName()
with an empty string throws an exception. (Thx brutaldev) - Issue #180: Network connects methods hangs in Windows service when credentials fail. (Thx brutaldev)
- Issue #181:
File.OpenWrite()
should create file if it doesn't exist. (Thomas Levesque) - Issue #183: Add
SafeFileHandle
null check for BackupFileStream.Dispose. (Thx diontools) - Issue #185: Correct pinvoke signatures of
CreateSymbolicLink()
andCreateSymbolicLinkTransacted()
functions. - Issue #196: Replace usage of
ExtendedFileAttributes.None
withExtendedFileAttributes.Normal
. - Issue #197: Fix: Prevent normalization of GlobalRootPrefix paths.
- Issue #198:
Path.GetRegularPathCore()
should not normalize\\?\Volume
prefix. - Issue #201: Some exceptions contain an incorrect
HRESULT
(Thomas Levesque) - Issue #203:
Directory.GetDirectories()
andDirectory.GetFiles()
return absolute paths when given relative argument. - Issue #204: Giving empty string to
Directory.GetFileName()
and related methods throws exception. - Issue #206:
File.GetLastWriteTime()
throws exception for non-existing path. - Issue #217:
File.Replace()
raises an exception. - Issue #218:
Volume.GetVolumeInfo()
fails for global root paths. - Issue #219: Mismatching Implementation to
System.IO.Path.GetDirectoryName()
. - Issue #226:
DirectoryInfo
using searchoption. - Issue #232: Enable null for destinationBackupFileName for
File.Replace()
andFileInfo.Replace()
. - Issue #234:
Path.CheckInvalidPathChars
breaksIsPathRooted
for whitespace strings. - Issue #242:
File.Open(file, System.IO.FileMode.Append)
does not append. - Issue #244:
File.Copy(src, dst, true)
does not respectFILE_ATTRIBUTE_READONLY
. - Issue #246: Using
Directory.EnumerateFileSystemEntries()
recursively with a relative path may fail. - Issue #248:
Directory.Move()
throwsFileNotFoundException
instead ofDirectoryNotFoundException
when source folder doesn't exist. - Issue #249: Change
File.GetHashCore()
.ToString("X2")
to.ToString("X2", CultureInfo.InvariantCulture)
. - Issue #252: Correct
FileSystemEntryInfos.FullPath
property when input path is a dot (current directory). - Issue #253: Apply
Dispose()
to methodFile.GetHashCore()
. - Issue #254: Change
File.GetHashCore()
output from.ToLowerInvariant()
to.ToUpperInvariant()
. - Issue #255: Creating Folder with Empty name. (ardestan)
- Issue #256:
Directory.Move()
not working over volumes withMoveOptions.CopyAllowed
. (Thx frontier777) - Issue #263:
Directory.GetDirectories()
Method(String, String, SearchOption)
with pattern "* " (Thx ardestan)
- Issue #113: Change names of time related properties on
FileSystemEntryInfo
to conform withFileInfo/DirectoryInfo
. - Issue #126: Suffix the name of all methods working with TxF with "Transacted".
- Issue #128: Remove
Path.IsLocalPath()
in favour ofPath.IsUncPath()
. - Issue #140: Replace internal
DFS_INFO_4
structure withDFS_INFO_9
. - Issue #184:
File.CreateSymbolicLink()
should throwPlatformNotSupportedException()
if OS < Vista. - Issue #250: Change
FileSystemEntryInfo.ToString()
to show full path instead ofReparsePointTag
.
- Issue #104:
VolumeInfo.Refresh()
fails withSystem.IO.IOException
: (234)". - Issue #108:
Volume.Refresh()
should throwDeviceNotReadyException
. - Issue #110:
Directory.GetDirectoryRoot()
should throwSystem.ArgumentException
. - Issue #117: Fix
Path.GetFullPath()
issues. - Issue #123: When
Directory.Encrypt/Decrypt()
is non-recursive, only process the folder. - Issue #124: Unit tests for long/short path are failing.
- New: The public key of AlphaFS.dll has changed, delay-signing is no longer used.
- New: Unit Tests, also act as code samples.
- New: Numerous bugfixes, optimizations and (AlphaFS) overloaded methods implementations.
- New: Complete implementation of .NET 4.5 File(Info) and Directory(Info) classes.
- New: Complete implementation of .NET 4.5 DriveInfo() class and with UNC support.
- New: Complete implementation of .NET 4.5 Path() class.
- New: Implemented Unicode aka "Long Path" handling for all Win32 API functions that support it.
- New: Added support for NuGet.
- New: Added support for building against .NET 4.0, 4.5, and 4.5.1 in addition to 3.5.
- New: Supports networking by enumerating hosts and shares (SMB/DFS) and connect/disconnect to/from network resources (AlphaFS.Network.Host() class).
- New: Supports working with NTFS ADS (Alternate Data Streams) on files and folders (AlphaFS.Filesystem.AlternateDataStreamInfo() class).
- New: Supports enumerating connected PnP devices (AlphaFS.Filesystem.Device() / AlphaFS.Filesystem.DeviceInfo() classes).
- New: Supports extracting icons from files and folders (AlphaFS.Filesystem.Shell32Info() class).
- New: Supports PathFormat parameter for numerous methods to control path normalization. This speeds up things internally (less string processing and GetFullPath() calls) and also enables working with files and folders with a trailing dot or space:
RelativePath
(slow): (default) Path will be checked and resolved to an absolute path. Unicode prefix is applied.FullPath
(fast): Path is an absolute path. Unicode prefix is applied.LongFullPath
(fastest): Path is already an absolute path with Unicode prefix. Use as is.
- Mod: Enabled KernelTransaction parameter for all Win32 API functions that support it.
- Mod: Added public read only properties to class FileSystemInfo(). Available for: DirectoryInfo() / FileInfo():
- EntryInfo : Instance of the FileSystemEntryInfo() class.
- Transaction : Represents the KernelTransaction that was passed to the constructor.
- Mod: Added more entries to enum ReparsePointTag.
- Mod: Removed method Directory.CountFiles() and added method Directory.CountFileSystemObjects().
- Mod: Removed method Directory.GetFullFileSystemEntries() and added method Directory.EnumerateFileSystemEntryInfos().
- Note: This new method currently does not support DirectoryEnumerationExceptionHandler, this will probably be added in a future release.
- Mod: Renamed method Directory.GetFileIdBothDirectoryInfo() to Directory.EnumerateFileIdBothDirectoryInfo().
- Mod: Method Directory.CreateDirectory() signature change: Using template directory. Ability for NTFS-compressed folders added.
- Mod: Method Directory.GetProperties() signature change.
- Mod: Renamed method File.GetFileInformationByHandle() to File.GetFileInfoByHandle().
- Mod: Removed overloaded method File.GetFileInformationByHandle(FileStream).h
- Mod: Removed overloaded AlphaFS methods File.Move() using MoveFileOptions and CopyProgressRoutine, and added method File.Move().
- Mod: Renamed method Volume.GetDeviceForVolumeName() to Volume.GetVolumeDeviceName().
- Mod: Renamed method Volume.GetDisplayNameForVolume() to Volume.GetVolumeDisplayName().
- Mod: Renamed method Volume.GetVolumeInformation() to Volume.GetVolumeInfo().
- Mod: Renamed method Volume.GetVolumeMountPoints() to Volume.EnumerateVolumeMountPoints().
- Mod: Renamed method Volume.GetVolumePathNamesForVolume() to Volume.EnumerateVolumePathNames().
- Mod: Renamed method Volume.GetVolumes() to Volume.EnumerateVolumes().
- Mod: Method Volume.DefineDosDevice() signature change.
- Mod: Method Volume.QueryDosDevice() signature change.
- Mod: Method Volume.QueryAllDosDevices() signature change.
- Mod: Removed method Volume.GetLogicalDrives() in favor of method Directory.GetLogicalDrives().
- Mod: Class VolumeInfo() constructor signature change.
- Mod: Class VolumeInfo() properties updated/changed.
- Mod: Added method Volume.Refresh().
- Mod: Changed struct DiskSpaceInfo() to class.
- Mod: Class DiskSpaceInfo() constructor signature change.
- Mod: Class DiskSpaceInfo() properties added.
- Mod: Added method DiskSpaceInfo.Refresh().
- Mod: Refactored Path() class.
- Mod: Improved upon the correct (.NET) exceptions thrown. Added AlphaFS specific: DirectoryReadOnlyException and FileReadOnlyException.
- Removed classes PathInfoXxx().
- Removed method Path.IsValidPath(), was part of PathInfo() class.
- Removed IllegalPathException.
- Removed enum DriveType in favor of System.IO.DriveType enum.
- Removed enum FileAccess in favor of System.IO.FileAccess enum.
- Removed enum FileAttributes in favor of System.IO.FileAttributes enum.
- Removed enum FileMode in favor of System.IO.FileMode enum.
- Removed enum FileOptions in favor of System.IO.FileOptions enum.
- Removed enum FileShare in favor of System.IO.FileShare enum.
- Removed enum FileSystemRights in favor of System.Security.AccessControl.FileSystemRights enum.
- Removed enum FileType, obsolete.
- Removed enum EnumerationExceptionDecision, obsolete.
- Removed enum IoControlCode.cs, obsolete.
- Renamed enum CopyProgressResult to CopyMoveProgressResult.
- Renamed enum MoveFileOptions to MoveOptions.
- Renamed class DeviceIo to Device.
- Renamed delegate CopyProgressResult to CopyMoveProgressResult.
- New: Various file system objects enumeration methods in Directory class.
- Numerous bugfixes and optimizations
- New: more unit tests
- New: VS 2010 help file format, aka Help Viewer 1, dumped MS HELP 2 format
- New: Directory.GetFileIdBothDirectoryInfo, which provides access to the GetFileInformationByHandleEx Win32 API function with the FileInformationClass set to FileIdBothDirectoryInfo.
- New: Directory.CountFiles
- Mod: Additional overloads for File.Open method.
- Mod: FileAttributes.Invalid flag removed.
- New: Directory.GetProperties method for retrieving aggregated information about files in a directory.
- New: File.GetFileInformationByHandle added providing information about file index and link count.
- New: KernelTransaction can now be created from a System.Transaction to participate in the ambient transaction
- New: File.GetHardlinks providing an enumeration about all hardlinks pointing to the same file.
- Mod: Many improvements and bug-fixes to Path/PathInfo path-parsing.
- Mod: More functions for manipulating timestamps on files and directories.
- Mod: Directory.GetFullFileSystemEntries added to provide more convenient usage of the FileSystemEnumerator.
- Mod: ... and many more minor changes and fixes.
- New: DirectoryInfo and FileInfo classes added
- New: PathInfo.GetLongFullPath() and Path.GetLongFullPath() methods added
- Mod: Path and PathInfo got many bugfixes, and some new functionality was added.
- Mod: AlphaFS now targets the .NET Framework 2.0 instead of 3.5 previously.
- Mod: KernelTransaction can now be created from, and participate in a System.Transactions.Transaction.
- New: BackupFileStream added, in support of the BackupWrite(), BackupRead() and BackupSeek() functions from the Win32 API.
- Mod: Inheritance structure for several classes was modified, mainly to add MarshalByRefObject to the relevant classes.
- Mod: FileSystemEntryInfo was changed to a reference type (class) instead of the previous value type (struct).
- Mod: PathInfo now accepts more types of internal paths, such as \?\GLOBALROOT\Device\HarddiskVolumeShadowCopy5\ etc.
- ... and many minor changes and fixes, not mentioned here.
- New: Added support for hardlinks and symbolic links in File.
- New: Added Directory.EnableEncryption() and Directory.DisableEncryption()
- New: Added File.GetCompressedSize()
- Mod: Applied CLSCompliant(false) to the assembly
- Mod: Improved error reporting, and cleanup of internal class NativeError.
- Initial release