Пример #1
0
        internal FILEDESCRIPTOR ToFileDescriptor()
        {
            FILEDESCRIPTOR filedescriptor = new FILEDESCRIPTOR();

            filedescriptor.dwFlags   = FileDescriptorFlags.FD_FILESIZE;
            filedescriptor.cFileName = this.Name;
            if (this.Contents != null)
            {
                NativeUtilities.GetWords(this.Contents.LongLength, out filedescriptor.nFileSizeHigh, out filedescriptor.nFileSizeLow);
            }
            if (this.Attributes != FileAttributes.Normal)
            {
                filedescriptor.dwFileAttributes = (uint)this.Attributes;
                filedescriptor.dwFlags         |= FileDescriptorFlags.FD_ATTRIBUTES;
            }
            if (this.CreationTime != DateTime.MinValue)
            {
                NativeUtilities.GetWords(this.CreationTime.ToFileTime(), out filedescriptor.ftCreationTime.dwHighDateTime, out filedescriptor.ftCreationTime.dwLowDateTime);
                filedescriptor.dwFlags |= FileDescriptorFlags.FD_CREATETIME;
            }
            if (this.LastAccessTime != DateTime.MinValue)
            {
                NativeUtilities.GetWords(this.LastAccessTime.ToFileTime(), out filedescriptor.ftLastAccessTime.dwHighDateTime, out filedescriptor.ftLastAccessTime.dwLowDateTime);
                filedescriptor.dwFlags |= FileDescriptorFlags.FD_ACCESSTIME;
            }
            if (this.LastWriteTime != DateTime.MinValue)
            {
                NativeUtilities.GetWords(this.LastWriteTime.ToFileTime(), out filedescriptor.ftLastWriteTime.dwHighDateTime, out filedescriptor.ftLastWriteTime.dwLowDateTime);
                filedescriptor.dwFlags |= FileDescriptorFlags.FD_WRITESTIME;
            }
            return(filedescriptor);
        }