Как сделать файлы на сервере отображаемыми в списке и указать число за ним и нажать его номер и загрузить, вставив его номер?Создание FTP-сервера в java, но перечисление его файлов
Дело торгует файлами с моей самости, что момент я могу, но список файлов, которые я имею в каталоге я наклоняюсь, я уже могу скачивать файлы (то будет главной точкой)
int porto = 21;
String IP = "x.x.x.x";
public Client() {
String destinyfile = "directory";
try {
Socket MyClient = new Socket(IP, porto);
DataInputStream input = new DataInputStream(MyClient.getInputStream());
DataOutputStream output = new DataOutputStream(MyClient.getOutputStream());
System.out.println(input.readUTF());
String arquivo = JOptionPane.showInputDialog("Insert the name of the file");
output.writeUTF(arquivo);
ObjectInputStream in = new ObjectInputStream(MyClient.getInputStream());
String fileName = in.readUTF();
if(fileName != null){
long size = in.readLong();
System.out.println("Processing the file: " + fileName + " - "+ size + " bytes.");
File file = new File(destinyfile);
if(file.exists() == false){
file.mkdir();
}
FileOutputStream fos = new FileOutputStream(caminhoDestino + fileName);
byte[] buf = new byte[4096];
while (true) {
int len = in.read(buf);
if (len == -1)
break;
fos.write(buf, 0, len);
}
fos.flush();
fos.close();
}
System.out.println(input.readUTF());
MyClient.close();
} catch (Exception e) {
Сервер
int port = 21;
public Servidor() {
try {
ServerSocket ss = new ServerSocket(port);
String caminho = "directory";
while (true) {
System.out.println("Waiting user.");
Socket socket = ss.accept();
DataInputStream input = new DataInputStream(socket.getInputStream());
DataOutputStream output = new DataOutputStream(socket.getOutputStream());
output.writeUTF("Welcome");
String arq = input.readUTF();
System.out.println("File: " + arq);
File file = new File(caminho + arq);
if(file.exists()){
ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
System.out.println("Transfering file: " + file.getName());
out.writeUTF(file.getName());
out.writeLong(file.length());
FileInputStream filein = new FileInputStream(file);
byte[] buf = new byte[4096];
while (true) {
int len = filein.read(buf);
if (len == -1)
break;
out.write(buf, 0, len);
}
out.close();
output.writeUTF("File Sent:");
}else{
output.writeUTF("File doesnt exist!");
}
ss.close();
}
} catch (Exception e) {