internal FileIdBothDirectoryInfo(NativeMethods.FILE_ID_BOTH_DIR_INFO fibdi, string fileName) { CreationTimeUtc = DateTime.FromFileTimeUtc(fibdi.CreationTime); LastAccessTimeUtc = DateTime.FromFileTimeUtc(fibdi.LastAccessTime); LastWriteTimeUtc = DateTime.FromFileTimeUtc(fibdi.LastWriteTime); ChangeTimeUtc = DateTime.FromFileTimeUtc(fibdi.ChangeTime); AllocationSize = fibdi.AllocationSize; EndOfFile = fibdi.EndOfFile; ExtendedAttributesSize = fibdi.EaSize; FileAttributes = fibdi.FileAttributes; FileId = fibdi.FileId; FileIndex = fibdi.FileIndex; FileName = fileName; // ShortNameLength is the number of bytes in the short name; since we have a unicode string we must divide that by 2. ShortName = new string(fibdi.ShortName, 0, fibdi.ShortNameLength / UnicodeEncoding.CharSize); }
internal FileIdBothDirectoryInfo(NativeMethods.FILE_ID_BOTH_DIR_INFO fibdi, string fileName) { System.Diagnostics.Debug.Assert(fileName != null, "fileName not expected to be null."); FileIndex = fibdi.FileIndex; CreationTime = fibdi.CreationTime.AsDateTime(); LastAccessTime = fibdi.LastAccessTime.AsDateTime(); LastWriteTime = fibdi.LastAccessTime.AsDateTime(); ChangeTime = fibdi.ChangeTime.AsDateTime(); EndOfFile = fibdi.EndOfFile; AllocationSize = fibdi.AllocationSize; FileAttributes = (FileAttributes)fibdi.FileAttributes; ExtendedAttributesSize = fibdi.EaSize; // ShortNameLength is the number of bytes in the short name, since we have a unicode string we must divide that by 2. ShortName = new string(fibdi.ShortName, 0, fibdi.ShortNameLength / 2); FileId = fibdi.FileId; FileName = fileName; }