I started using google jimfs and I can't understand how I can get file from path. In source code I see that Path.toFile throws UnsupportedOperationException. But how then can I use it without files? For example if my application need to know if some path is folder or file.
JimFS: how to get File from Path
The JSR 203 API has all the tools you need for that; and in this case, the Files
class.
In spite of its name, it handles everything Path
. For instance, you can use:
Files.isDirectory(thePath)
to test whether a file is a directory. But there are also other ways to test for the same thing.
Thank you! But why did they do like that? –
Gregorio
Precisely because a
Path
can be issued from different filesystems. The Path
class is "busy" enough as it is without adding more methods to it... –
Cannae Do I understand you right - because Path can be linked to different file systems and File can't? –
Gregorio
Yes, exactly. A
File
can only be issued from what JSR 203 calls the default filesystem -- see FileSystems.getDefault()
. In fact, when you do Paths.get(whatever)
, this is exactly equivalent to FileSystems.getDefault().getPath(whatever)
. –
Cannae Thank you for such detailed answer! –
Gregorio
@JimJim2000: Yeah, as fge indicates, it's basically impossible to get a
File
object for something other than the default file system, so you can't have an in-memory file system like Jimfs and use File
. That's part of the reason the new API (Path
, Files
, etc.) was created. –
Craggy I don't understand why someonee downvoted my question. Is my question stupid? –
Gregorio
@JimJim2000: Maybe because they thought you should have researched the API you were using more before asking a question about it? I don't know... I wouldn't worry about it. –
Craggy
© 2022 - 2024 — McMap. All rights reserved.