Another one for the Scripter's Scrapbook! On the shoulders of Ken's fine stsFileInfo that retrieves file and folder attributes in an array format, I have below refined it to include any required attribute/s all in one command, in any combination and in any any order. The returned values are presented in the same order as requested. Example: put flcFileInfo(myFilePath,"CreatorType","size","modified","permissions") It also handles the change in the detailedFiles function, where an unsupported item is now 0 instead of empty (for example the 'BackUp Date' under Windows). It is, however, backwards compatibile with the earlier detailedFiles version.
Watch out for line-wrapping! Optimising welcome. /H The Scripter's Scrapbook www.FlexibleLearning/ssbk.htm --| FUNCTION: flcFileInfo --| --| Author: Hugh Senior (based on stsFileInfo by Ken Ray) --| Version: 1.0 --| Created: 30-JUL-05 --| Last Mod: -- --| Requires: Self-contained function handler for Revolution and MetaCard --| Summary: Retrieves the requested file/folder information, one per line in the same order as requested --| Format: flcFileInfo(param1 [,param2,param3...]) --| Parameters: --| param 1: file/folder path --| param 2 to n: --| EITHER: "full" or omitted for a full, tab-delimted list --| OR: Any combination of these 12 specific attributes in any order... --| FilePath, FileName, DataSize, ResourceSize, Size, Created, Modified, Accessed, BackUp, OwnerID, GroupID, Permissions, CreatorType --| --| Examples: --| get flcFileInfo(myFilePath) - Returns an itemised list --| get flcFileInfo(myFilePath,"full") - Returns an itemised list --| get flcFileInfo(myFilePath,"FilePath","created","modified","accessed") --| get flcFileInfo(myFilePath,"DataSize","ResourceSize","size") --| get flcFileInfo(myFilePath,"CreatorType","size","modified","permissions") --| --| Error handling: --| File/folder not found - The returned value is empty --! Attribute not supported - The returned attribute value is "not supported" --| Attribute not recognized - The returned attribute value is "not recognized" ---------------------------------------------------------------------- function flcFileInfo put param(1) into pFilePath put "FilePath,FileName,DataSize,ResourceSize,Size,Created,Modified,Accessed,BackUp,OwnerID,GroupID,Permissions,CreatorType" into tAttributeList put there is a file pFilePath into Fflag if (NOT Fflag AND there is NOT a folder pFilePath) then return "" set the itemDel to "/" put urlEncode(last item of pFilePath) into tItem delete last item of pFilePath put the directory into tOldDir set the directory to pFilePath if Fflag then put the detailed files into tDetailedList else put the detailed folders into tDetailedList set the directory to tOldDir set the itemDel to "," put lineOffset(cr&tItem&",",cr&tDetailedList) into tLine put line tLine of tDetailedList into tDetailedInfo replace "," with tab in tDetailedInfo set the itemDel to tab put tDetailedInfo into tFileA["full"] put urlDecode(item 1 of tDetailedInfo) into tFileA["fileName"] put pFilePath&"/"&tFileA["fileName"] into tFileA["filePath"] put (item 2 of tDetailedInfo) into tFileA["DataSize"] if the platform is "MacOS" then put (item 3 of tDetailedInfo) into tFileA["ResourceSize"] else put "" into tFileA["ResourceSize"] put (item 2 of tDetailedInfo) + (item 3 of tDetailedInfo) into tFileA["size"] put "Created,Modified,Accessed,BackUp" into tDates replace "," with tab in tDates put the twelvehourtime into tTHT set the twelvehourtime to FALSE repeat with x = 4 to 7 put item x of tDetailedInfo into tSecs if tSecs=0 then put "not supported" into tSecs if tSecs is a number then convert tSecs to long system date and long time put tSecs into tFileA[(item x-3 of tDates)] end repeat set the twelvehourtime to tTHT if (item 8 of tDetailedInfo) <>0 then put (item 8 of tDetailedInfo) into tFileA["OwnerID"] else put "" into tFileA["OwnerID"] if (item 9 of tDetailedInfo) <>0 then put (item 9 of tDetailedInfo) into tFileA["GroupID"] else put "" into tFileA["GroupID"] put (item 10 of tDetailedInfo) && "octal" &","&&baseConvert(item 10 of tDetailedInfo,8,10)&&"decimal" into tFileA["permissions"] # octal && decimal put (item 11 of tDetailedInfo) into tFileA["creatorType"] set the itemDel to COMMA if (the paramCount=1) OR (param(2)="full") OR (param(2)="") then repeat with n=1 to num of items of tAttributeList put item n of tAttributeList into L if tFileA[L]="" then put "not supported" into tFileA[L] put L &TAB& tFileA[L] into line (num of lines of tStdOut)+1 of tStdOut end repeat else repeat with n=2 to the paramCount get tFileA[param(n)] if param(n) is not in tAttributeList then put "not recognized" into it else if it="" then put "not supported" into it put it into line (num of lines of tStdOut)+1 of tStdOut end repeat end if if tStdOut="" then return "not recognized" else return tStdOut end flcFileInfo SOURCE: Hugh Senior, FLCo _______________________________________________ use-revolution mailing list [email protected] Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
