簡體   English   中英

如何在Java中打開文件夾/目錄

[英]How to open a folder/Directory in Java

我有一個一TilePane imageView項目,每個項目ImageView的顯示圖像從我的電腦的目錄了。 單擊tilePane中的任何圖像時,會在控制台上顯示一條消息,其中包含指向圖像所在文件夾的目錄路徑地址,例如:

You clicked: ImageResources/wp.png

我想進一步擴展它,以便在單擊特定圖像時打開該圖像所在的文件夾。

我在下面的實現僅打印以控制台以下消息,但是沒有打開目錄/文件夾。 消息是:

File Not Found

如何使它工作,以便打開文件夾|目錄? 謝謝大家。

另外,可以打開目錄並選擇單擊的圖像,這將是一個額外的操作,但現在不是優先事項。

到目前為止,我的實現如下:

public class TilePaneExample extends Application {

    @Override
    public void start(Stage primaryStage) {
        VBox root = new VBox(30);

        String[] imageResources = new String[]{
            //loading images
            "ImageResources/facebook.png",
            "ImageResources/faviicon.png",
            "ImageResources/jquery-logo.png",
            "ImageResources/linkedin_32.png",
            "ImageResources/loading1.png",
            "ImageResources/twitter.png",
            "ImageResources/twitter_32.png",
            "ImageResources/wp.png",};

        // Pane
        TilePane tilePane = new TilePane();
        tilePane.setHgap(5);
        tilePane.setVgap(5);

        for (final String imageResource : imageResources) {
            Image image = new Image(getClass().getResourceAsStream(imageResource));
            ImageView imageView = new ImageView(image);
            imageView.setOnMouseClicked(new EventHandler<MouseEvent>() {
                @Override
                public void handle(MouseEvent event) {
                    File f = new File(imageResource);
                    String absolutePath = f.getAbsolutePath();
                    String folderPath = absolutePath.
                            substring(0, absolutePath.lastIndexOf(File.separator));
                    try {
                        Desktop.getDesktop().open(new File(folderPath));
                    } catch (IllegalArgumentException iae) {
                        System.out.println("File Not Found");
                    } catch (IOException ex) {
                        Logger.getLogger(TilePaneExample.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            });
            tilePane.getChildren().add(imageView);
        }

        root.getChildren().addAll(tilePane);
        primaryStage.setTitle("TilePane Example");
        Scene scene = new Scene(root, 300, 150);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

例如,單擊第二個圖像“ ImageResources / faviicon.png”,將其文件夾路徑打印為D:\\ standAloneDev \\ java \\ workingDir \\ Jive \\ TilePaneExample \\ ImageResources

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM