Esempio n. 1
0
		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;
		}
Esempio n. 2
0
		/// <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);
		}
Esempio n. 3
0
		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;
		}
Esempio n. 4
0
        /// <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;
        }