示例#1
0
 /// <summary>
 /// Sets file size to the specified value -- DOES NOT reset file seek pointer to original location
 /// </summary>
 /// <param name="size"></param>
 /// <returns></returns>
 public bool SetFileSize(long size)
 {
     if (enablePrivileges)
     {
         return(Native32.SetFileSize(logHandle, size));
     }
     else
     {
         int lodist = (int)size;
         int hidist = (int)(size >> 32);
         Native32.SetFilePointer(logHandle, lodist, ref hidist, Native32.EMoveMethod.Begin);
         if (!Native32.SetEndOfFile(logHandle))
         {
             return(false);
         }
         return(true);
     }
 }
示例#2
0
        /// Sets file size to the specified value.
        /// Does not reset file seek pointer to original location.
        private bool SetFileSize(string filename, SafeFileHandle logHandle, long size)
        {
            if (segmentSize <= 0)
            {
                return(false);
            }

            if (Native32.EnableVolumePrivileges(filename, logHandle))
            {
                return(Native32.SetFileSize(logHandle, size));
            }

            int lodist = (int)size;
            int hidist = (int)(size >> 32);

            Native32.SetFilePointer(logHandle, lodist, ref hidist, Native32.EMoveMethod.Begin);
            if (!Native32.SetEndOfFile(logHandle))
            {
                return(false);
            }
            return(true);
        }