public long SystemTimeToFileTime(SYSTEMTIME SystemTime) { long ft = new long(); switch(System.Environment.OSVersion.Platform) { case PlatformID.WinCE: SystemTimeToFileTimeCE(SystemTime.flatStruct, ref ft); break; default: SystemTimeToFileTimePC(SystemTime.flatStruct, ref ft); break; } return ft; }
/// <summary> /// Modified a FileTime for the specified file /// </summary> /// <param name="FileName">File to modify</param> /// <param name="DesiredTime">Time to modify</param> /// <param name="NewTime">New time to set</param> public void SetDeviceFileTime(string FileName, RAPIFileTime DesiredTime, DateTime NewTime) { CheckConnection(); IntPtr hFile = IntPtr.Zero; hFile = CeCreateFile(FileName, GENERIC_WRITE, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0); if((int)hFile == INVALID_HANDLE_VALUE) { throw new RAPIException("Could not open remote file"); } SYSTEMTIME st = new SYSTEMTIME(NewTime); long ft = (long)st; long empty = 0; switch(DesiredTime) { case RAPIFileTime.CreateTime: if(! Convert.ToBoolean(CeSetFileTime(hFile, ref ft, ref empty, ref empty))) { CeCloseHandle(hFile); throw new RAPIException("Could not get file time"); } break; case RAPIFileTime.LastAccessTime: if(! Convert.ToBoolean(CeSetFileTime(hFile, ref empty, ref ft, ref empty))) { CeCloseHandle(hFile); throw new RAPIException("Could not get file time"); } break; case RAPIFileTime.LastModifiedTime: if(! Convert.ToBoolean(CeSetFileTime(hFile, ref empty, ref empty, ref ft))) { CeCloseHandle(hFile); throw new RAPIException("Could not get file time"); } break; default: throw new RAPIException("Invalid DesiredTime parameter"); } CeCloseHandle(hFile); }
public SYSTEMTIME FileTimeToSystemTime(long FileTime) { SYSTEMTIME st = new SYSTEMTIME(); switch(System.Environment.OSVersion.Platform) { case PlatformID.WinCE: FileTimeToSystemTimeCE(ref FileTime, st.flatStruct); break; default: FileTimeToSystemTimePC(ref FileTime, st.flatStruct); break; } return st; }
/// <summary> /// Modified a FileTime for the specified file /// </summary> /// <param name="FileName">File to modify</param> /// <param name="DesiredTime">Time to modify</param> /// <param name="NewTime">New time to set</param> public bool SetDeviceFileTime(string FileName, RAPIFileTime DesiredTime, DateTime NewTime) { CheckConnection(); IntPtr hFile = IntPtr.Zero; hFile = CeCreateFile(FileName, GENERIC_WRITE, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0); if((int)hFile == INVALID_HANDLE_VALUE) { return false; } SYSTEMTIME st = new SYSTEMTIME(NewTime); long ft = (long)st; long empty = 0; switch(DesiredTime) { case RAPIFileTime.CreateTime: if(! Convert.ToBoolean(CeSetFileTime(hFile, ref ft, ref empty, ref empty))) { CeCloseHandle(hFile); return false; } break; case RAPIFileTime.LastAccessTime: if(! Convert.ToBoolean(CeSetFileTime(hFile, ref empty, ref ft, ref empty))) { CeCloseHandle(hFile); return false; } break; case RAPIFileTime.LastModifiedTime: if(! Convert.ToBoolean(CeSetFileTime(hFile, ref empty, ref empty, ref ft))) { CeCloseHandle(hFile); return false; } break; default: return false; } CeCloseHandle(hFile); return true; }