Ejemplo n.º 1
0
        public int SetFileTime(string filename, DateTime ctime, DateTime atime,
                               DateTime mtime, DokanFileInfo info)
        {
            CacheEntry entry = cache_.Lookup(filename);

            entry.RemoveGetFileInfoCache();

            return(ope_.SetFileTime(filename, ctime, atime, mtime, info));
        }
Ejemplo n.º 2
0
        public int SetFileTimeProxy(
            IntPtr rawFileName,
            ref ComTypes.FILETIME rawCreationTime,
            ref ComTypes.FILETIME rawLastAccessTime,
            ref ComTypes.FILETIME rawLastWriteTime,
            ref DOKAN_FILE_INFO rawFileInfo)
        {
            try
            {
                string file = GetFileName(rawFileName);

                long time;

                time = ((long)rawCreationTime.dwHighDateTime << 32) + (uint)rawCreationTime.dwLowDateTime;
                DateTime ctime = DateTime.FromFileTime(time);

                if (time == 0)
                {
                    ctime = DateTime.MinValue;
                }

                time = ((long)rawLastAccessTime.dwHighDateTime << 32) + (uint)rawLastAccessTime.dwLowDateTime;
                DateTime atime = DateTime.FromFileTime(time);

                if (time == 0)
                {
                    atime = DateTime.MinValue;
                }

                time = ((long)rawLastWriteTime.dwHighDateTime << 32) + (uint)rawLastWriteTime.dwLowDateTime;
                DateTime mtime = DateTime.FromFileTime(time);

                if (time == 0)
                {
                    mtime = DateTime.MinValue;
                }

                return(operations_.SetFileTime(
                           file, ctime, atime, mtime, GetFileInfo(ref rawFileInfo)));
            }
            catch (Exception e)
            {
                Console.Error.WriteLine(e.ToString());
                return(-1);
            }
        }