Obtaining the size of a file

Josh Mellicker josh at dvcreators.net
Fri Apr 20 22:59:25 EDT 2007


Here are a couple of handlers that return the "humanSize" (a nicely  
formatted version) of a file provided the complete file path and  
filename:


put humanSize(tPathAndFile) into fld "file size"


FUNCTION humanSize tPathAndFile
   put theFileDetail(tPathAndFile) into tFileDet
   put item 2 of tFileDet + item 3 of tFileDet into tSize
   IF tSize > 1000000 THEN
     set the numberformat to "##.##"
     return tSize/1000000 & " MB"
   ELSE
     set the numberformat to "##"
     return tSize/1000 & " KB"
   END IF
END humanSize

FUNCTION theFileDetail tPathAndFile
     set the itemdel to "/"
     put item -1 of tPathAndFile into tFile
     delete item -1 of tPathAndFile
     put "/" after tPathAndFile
     set the defaultfolder to tPathAndFile
     put the detailed files into tFiles
     filter tFiles with urlencode(tFile) & comma & "*"
     return tFiles
END theFileDetail


These only took a few days to write, I am not quite as fast as  
Richard :-)

On Apr 20, 2007, at 7:02 PM, Richard Gaskin wrote:

> John Craig wrote:
>
>> Richard Gaskin wrote:
>>> John Craig wrote:
>>>> Does anyone know of a native rev. method to obtain the size of a  
>>>> file without using shell or 'the detailed files'?
>>>
>>> What's the objection to using 'the detailed files'?
>>>
>>> It was added to the language specifically to provide what you're  
>>> looking for.
>>>
>> It's clumsy and long winded.
>
> Revolution allows you to write your own custom commands and  
> functions, so you can get the exact info you want in a call as  
> simple as:
>
>    get FileSize(pFilePath)
>
>
> Since it only takes a minute to write the dozen or so lines needed,  
> I'll go ahead and do that for you:
>
> function FileSize pPath
>   set the itemdel to "/"
>   put urlEncode(last item of pPath) into tShortFileName
>   delete last item of pPath
>   put the directory into tSaveDir
>   set the directory to pPath
>   put the detailed files into tFiles
>   set the directory to tSaveDir
>   set the itemdel to comma
>   put lineoffset( cr&tShortFileName&comma, cr&tFiles) into tLineNum
>   if tLineNum > 0 then
>     put line tLineNum of tFiles into tLine
>     return item 2 of tLine + item 3 of tLine
>   end if
> end FileSize
>
>
> Now you can drop than handy function into a library somewhere and  
> use it whenever you need it.
> 	
> -- 
>  Richard Gaskin
>  Fourth World Media Corporation
>  ___________________________________________________________
>  Ambassador at FourthWorld.com       http://www.FourthWorld.com
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your  
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution




More information about the use-livecode mailing list