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