• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Junilu Lacar
  • Jeanne Boyarsky
  • Bear Bibeault
Sheriffs:
  • Knute Snortum
  • Tim Cooke
  • Devaka Cooray
Saloon Keepers:
  • Ron McLeod
  • Stephan van Hulst
  • Tim Moores
  • Tim Holloway
  • Carey Brown
Bartenders:
  • Piet Souris
  • Frits Walraven
  • Ganesh Patekar

Returning the Volumes on a Mac in Java

 
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm developing a Java App in Netbeans, one of the requirements is it has to look at drives frequently to see if a new memory stick has been inserted, and if it has, take
a look to see what's on it, and if there's a configuration file specific to the app. then it reads it and looks at all the data on the memory stick for some specific stuff.

This all works perfectly on PC.

Of course on Mac the 'drives' are Volumes. No problem, just concantenate the File array you get from File.listRoots() with this one:



However...

If you unplug a memory stick from my mac (10.4.11), without first ejecting it, of course it complains, and it seems the Volume isn't deleted from /Volumes

so, thinks I, just process osxVols a bit to see if each file in /Volumes actually exists and discard the ones which don't, this should return a 'true' picture of which volumes are really there.

But in my iteration over all the File items in osxVols

...

Always throws a java.lang.NullPointerException

Even on volumes I KNOW exist.

So what's going on?

Is there a better way to get a 'correct' list of File objects representing Volume roots?
 
Ranch Hand
Posts: 357
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi I have wrote a small piece of code to test what you are saying. however I didn't get any problems. I have a mac os 10.5.6, this is the code.



in addition i have plugged an USB flash and run the program and i got:
Macintosh HD
PHILIPS UFD

then i unplugged the flash USB without removing it safely and the result was as if it was removed in a safe way. I don't know if its only the differences of OS. however for me everything works fine.
 
Richard M Hardy
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I can do that too. And also read things like isFile(), isDirectory() (but not getFreeSpace() which returns an unsupportedError - or something like that)

Could you try this on your one:

 
Richard M Hardy
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Should have put:

 
Marshal
Posts: 67289
170
Mac Mac OS X IntelliJ IDE jQuery Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"Richard MH", please check your private messages for an important administrative matter.
 
What's that smell? I think this tiny ad may have stepped in something.
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop
https://coderanch.com/wiki/718759/books/Building-World-Backyard-Paul-Wheaton
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!