• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Returning the Volumes on a Mac in Java

 
Richard M Hardy
Greenhorn
Posts: 3
  • 0
  • 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?
 
Omar Al Kababji
Ranch Hand
Posts: 357
  • 0
  • 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
  • 0
  • 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
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Should have put:

 
Bear Bibeault
Author and ninkuma
Marshal
Pie
Posts: 64171
83
IntelliJ IDE Java jQuery Mac Mac OS X
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"Richard MH", please check your private messages for an important administrative matter.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic