Please note that JavaFX FileChooser return a java.io.File object. To obtain coresponding java.nio.file.Path object, call its toPath() method.
package javafx_niofile;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
/**
*
* @web http://java-buddy.blogspot.com/
*/
public class JavaFX_NIOFile extends Application {
Label label;
@Override
public void start(Stage primaryStage) {
Button btnLoad = new Button();
btnLoad.setText("Load File");
btnLoad.setOnAction(btnLoadEventListener);
label = new Label();
VBox rootBox = new VBox();
rootBox.getChildren().addAll(btnLoad, label);
Scene scene = new Scene(rootBox, 400, 350);
primaryStage.setTitle("java-buddy.blogspot.com");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
EventHandler<ActionEvent> btnLoadEventListener
= new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent t) {
FileChooser fileChooser = new FileChooser();
//Set extension filter
FileChooser.ExtensionFilter extFilter
= new FileChooser.ExtensionFilter("ALL files (*.*)", "*.*");
fileChooser.getExtensionFilters().add(extFilter);
//Show open file dialog, return a java.io.File object
File file = fileChooser.showOpenDialog(null);
//obtain a java.nio.file.Path object
Path path = file.toPath();
String fileInfo = "Path = " + path.toString() + "\n\n";
fileInfo += "FileSystem: " + path.getFileSystem() + "\n\n";
fileInfo += "FileName = " + path.getFileName() + "\n"
+ "Parent = " + path.getParent() + "\n\n"
+ "isExecutable(): " + Files.isExecutable(path) + "\n"
+ "isReadable(): " + Files.isReadable(path) + "\n"
+ "isWritable(): " + Files.isWritable(path) + "\n";
try {
fileInfo += "getLastModifiedTime(): " + Files.getLastModifiedTime(path, LinkOption.NOFOLLOW_LINKS) + "\n"
+ "size(): " + Files.size(path) + "\n";
} catch (IOException ex) {
Logger.getLogger(JavaFX_NIOFile.class.getName()).log(Level.SEVERE, null, ex);
}
label.setText(fileInfo);
}
};
}
Get file info using java.nio.file.Path and java.nio.file.Files |
Related:
- Access subpath of java.nio.file.Path
No comments:
Post a Comment