Пример #1
0
        private static void Addto(FILL_FIND_FILE_DATA fill, DokanFileInfo rawFileInfo, FileInformation fi)
        {
            Debug.Assert(!string.IsNullOrEmpty(fi.FileName));
            var ctime = ToFileTime(fi.CreationTime);
            var atime = ToFileTime(fi.LastAccessTime);
            var mtime = ToFileTime(fi.LastWriteTime);
            var data  = new WIN32_FIND_DATA
            {
                dwFileAttributes = fi.Attributes,
                ftCreationTime   =
                {
                    dwHighDateTime = (int)(ctime >> 32),
                    dwLowDateTime  = (int)(ctime & 0xffffffff)
                },
                ftLastAccessTime =
                {
                    dwHighDateTime = (int)(atime >> 32),
                    dwLowDateTime  = (int)(atime & 0xffffffff)
                },
                ftLastWriteTime =
                {
                    dwHighDateTime = (int)(mtime >> 32),
                    dwLowDateTime  = (int)(mtime & 0xffffffff)
                },
                nFileSizeLow  = (uint)(fi.Length & 0xffffffff),
                nFileSizeHigh = (uint)(fi.Length >> 32),
                cFileName     = fi.FileName
            };

            //ZeroMemory(&data, sizeof(WIN32_FIND_DATAW));

            fill(ref data, rawFileInfo);
        }
        private static void Addto(FILL_FIND_FILE_DATA fill, DokanFileInfo rawFileInfo, FileInformation fi)
        {
            Debug.Assert(!String.IsNullOrEmpty(fi.FileName));
            long ctime = fi.CreationTime.ToFileTime();
            long atime = fi.LastAccessTime.ToFileTime();
            long mtime = fi.LastWriteTime.ToFileTime();
            var data = new WIN32_FIND_DATA
            {
                dwFileAttributes = fi.Attributes,
                ftCreationTime =
                {
                    dwHighDateTime = (int) (ctime >> 32),
                    dwLowDateTime = (int) (ctime & 0xffffffff)
                },
                ftLastAccessTime =
                {
                    dwHighDateTime = (int) (atime >> 32),
                    dwLowDateTime = (int) (atime & 0xffffffff)
                },
                ftLastWriteTime =
                {
                    dwHighDateTime = (int) (mtime >> 32),
                    dwLowDateTime = (int) (mtime & 0xffffffff)
                },
                nFileSizeLow = (uint)(fi.Length & 0xffffffff),
                nFileSizeHigh = (uint)(fi.Length >> 32),
                cFileName = fi.FileName
            };
            //ZeroMemory(&data, sizeof(WIN32_FIND_DATAW));

            fill(ref data, rawFileInfo);
        }