将文件夹中的图片文件写入数组中

    今天学习了一下如何将文件夹中的文件写入数组中,主要是为了完成图片浏览器上下翻页的问题。在博客里只是简单实现,并没有太多的界面编程。

    主要方法:getParentFile():用于获取当前文件夹;listFiles():将文件夹中的文件写入file类型数组中;

                    equals()函数加for循环定位所选文件在文件夹中的位置;

    在代码中注释部分将文件写入了一个ArrayList中,利用indexof()函数获取索引。

    只要找到文件在文件夹中的位置,寻找该文件前后的文件就不难了,图片浏览器寻找上一个或下一个图片的功能也就可以很好实现了。

 /**
 * 功能:实现选择文件的功能;
 * 实现将文件中的文件都放在Arraylist或者list里边,并输出所选图片的下一张图片路径
 * 函数:fileChooser 选择文件
 * 定位文件位置的两种方法:
 * files.indexOf(file);
 * equals函数 + for循环
 * 时间:2018/5/27
 * 作者:桐宫之囚
 */
import java.io.File;
import java.util.ArrayList;


import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.geometry.Pos;
import javafx.scene.control.Label;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
import javafx.stage.FileChooser;


public class filename extends Application{

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

public void start(Stage primaryStage){
GridPane pane = new GridPane();
pane.setAlignment(Pos.CENTER);

final Button button1 = new Button("选择");
final Button button2 = new Button("加密");
final TextField text1 = new TextField();

//System.out.print(result.toString());
pane.add(button1, 2,0 );
pane.add(new Label("文件名:"), 0, 0);
pane.add(text1,1, 0);
pane.add(new Label("密钥:"), 0, 1);
pane.add(new TextField(), 1, 1);
pane.add(button2, 2, 1);

FileChooser fileChooser = new FileChooser();

button1.setOnAction((final ActionEvent e) -> {
File file = fileChooser.showOpenDialog(primaryStage);
if(file != null){
text1.setText(file.toString());
}
File cd = file.getParentFile();
System.out.println(cd);//获得当前文件的目录
//将cd文件夹中的文件都放到了f当中
File[] f = cd.listFiles();
for(int i= 0; i <f.length;i ++){
System.out.println(f[i].getPath().toString());
}
System.out.println("---------------------------");
for(int i = 0 ;i < f.length;i ++){
if(f[i].equals(file)){
System.out.println(f[i+1].getPath().toString());
break;
}
}
/**
ArrayList files = new ArrayList<File>();
System.out.println(f);
//将文件中的文件都添加到files里边
for(File fileIndex:f){
files.add(fileIndex);
}

for(int i = 0; i < files.size(); i ++){
System.out.println(files.get(i).toString());
}
System.out.println("------------------------");
System.out.println(file.getPath());
System.out.println("------------------------");
//定义文件在文件夹中的索引
int inde = files.indexOf(file);
System.out.println(inde);
System.out.println(files.get(inde + 1));
/**for(int i = 0 ;i < files.size();i ++){
if(files.get(i).toString() == file.getPath().toString()){
System.out.println(files.get(i + 1).toString());
break;
}
}*/
System.out.println(12);
});

Scene scene = new Scene(pane,400,400);
primaryStage.setTitle("AES");
primaryStage.setScene(scene);
primaryStage.show();
}
}

猜你喜欢

转载自blog.csdn.net/qq_37393071/article/details/80467556