>#ifnDef TRUE > #define TRUE .T. > #define FALSE .F. >#endif >function Do_it() > > local FileSize > > ?FileSize_Get('Z:\tmp\test_2.txt', @FileSize), FileSize > > > >endfunc >*--------------------------------------------------------------------------- > >#Define MAX_PATH 260 >function FileSize_Get(FileName, FileSize) > declare Integer FindFirstFile in Kernel32.dll string @, String @ > declare Integer FindClose in Kernel32.dll Integer > > local Success > Success = TRUE > > local FindFileData, Handle, FileSizeHigh, FileSizeLow > > FindFileData = replicate(chr(0), 4+8+8+8+4+4+4+4+MAX_PATH+14) > Handle = FindFirstFile(@FileName, @FindFileData) > > do case > case m.Handle < 0 > Success = FALSE > > otherwise > FileSizeHigh = substr(m.FindFileData, 29, 4) > FileSizeLow = substr(m.FindFileData, 33, 4) > > FileSize = CharToBin(m.FileSizeHigh) * 2^32 + CharToBin(m.FileSizeLow) > > =FindClose(m.Handle) > endcase > > return m.Success > >endfunc >*--------------------------------------------------------------------------- >function CharToBin(word) > local i, out > > out = 0 > > for i = len(m.word) to 1 step -1 > out = m.out * 256 + asc(substr(m.word, m.i, 1)) > endfor > > return m.Out >endfunc >*---------------------------------------------------------------------------- >