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