Finding the name of a USB volume
Scott Morrow
scott at elementarysoftware.com
Fri Jan 8 00:36:14 EST 2010
Very nice. Thanks, Phil!
Scott Morrow
Elementary Software
(Now with 20% less chalk dust!)
web http://elementarysoftware.com/
email scott at elementarysoftware.com
------------------------------------------------------
On Jan 6, 2010, at 6:46 PM, Phil Davis wrote:
> Here is an simplified 'system_profiler' output approach. It returns one tab-delimited line of info per detachable USB storage device, with all the data items known to system_profiler for each device. NOTE: It expects system_profiler output to be in English.
>
>
> function macUsbDrives
> -- get USB device info from system profiler
> put shell("system_profiler -detailLevel full SPUSBDataType") into tData
>
> -- convert data to one line per USB device
> replace (colon & cr & cr) with numToChar(245) in tData -- device name
> replace (cr & cr) with numtoChar(250) in tData
> replace cr with tab in tData
> replace numtoChar(245) with (colon & tab) in tData
> replace numtoChar(250) with cr in tData
>
> -- remove records for all but USB drives (English data only)
> filter tData with "*Detachable Drive: Yes*"
>
> -- remove space-padding from items in each line
> set the itemDel to tab
> repeat for each line tLine in tData
> repeat for each item tItem in tLine
> put word 1 to -1 of tItem & tab after tNewData
> end repeat
> put cr into last char of tNewData
> end repeat
> delete last char of tNewData
>
> -- return the data
> return tNewData
> end macUsbDrives
>
> HTH -
> Phil Davis
>
>
>
> On 1/6/10 5:50 PM, Phil Davis wrote:
>> On 1/6/10 3:31 PM, Richard Gaskin wrote:
>>> tsj wrote:
>>>> Richard - I haven't got an unnamed USB drive handy to test this with but
>>>> what does the volumes function return when one is mounted? Does this give
>>>> you the expected "untitled" (or "untitled 1" etc)?
>>>>
>>>> If so, you could iterate through the listed volumes using a couple of
>>>> applescripts to determine whether the drive was local (false if it's a
>>>> network drive) ejectable (false if it's internal) and then if you get two
>>>> false results you can attempt to open a file on the volume. If that gives
>>>> you an error then the drive is write protected. If it passes all tests then
>>>> you're left (presumably) with an external USB or Firewire drive.
>>
>> The "passes all tests" list can also includes mounted .dmg files.
>>
>> Thanks for posting this - very helpful.
>
> --
> Phil Davis
>
> PDS Labs
> Professional Software Development
> http://pdslabs.net
>
> _______________________________________________
> 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