わかりました、私は直接しようとします。私は、一般的なクライアント/サーバー アーキテクチャに基づくファイル共有アプリケーションに取り組んでいます。私は HandleClient クラスも持っていますが、ここでは特に重要ではありません。
私がやりたいことは、ユーザーが他のユーザーの共有フォルダーに保存できる特定のファイルを検索できるようにすることです。たとえば、3 人のユーザーがサーバーに接続されており、全員がそれぞれの共有フォルダーを持っているとします。そのうちの 1 人が「Madonna」という名前のファイルを検索しようとすると、アプリケーションはその名前を含むすべてのファイルを一覧表示し、そのファイル名の横に必要なファイルを持っている/持っているユーザーに関する情報があるはずです。その情報は、ユーザー名または IP アドレスのいずれかです。これがUserクラスです。これを記述する必要がある方法です(これが私の上司が望んでいた方法です):
import java.io.File;
import java.util.ArrayList;
import java.util.Scanner;
public class User {
public static String username;
public static String ipAddress;
public User(String username, String ipAddress) {
username = username.toLowerCase();
System.out.println(username + " " + ipAddress);
}
public static void fileList() {
Scanner userTyping = new Scanner(System.in);
String fileLocation = userTyping.nextLine();
File folder = new File(fileLocation);
File[] files = folder.listFiles();
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < files.length; i++) {
list.add(i, files[i].toString().substring(fileLocation.length()));
System.out.println(list.get(i));
}
}
public static void main(String args[]) {
System.out.println("Insert the URL of your shared folder");
User.fileList();
}
}
このクラスは、特定のユーザーの属性 (ユーザー名、IP アドレス) を格納し、その特定のユーザーの共有フォルダーからファイルのリストを作成します。リストの型は ArrayList です。そうでなければなりません。これも上司に言われました。
一方、RequestForFile(String fileName) という名前の別のクラスが必要です。その目的は、検索時にログインしているすべてのユーザーのファイルの ArrayLists 内で特定のファイルを探すことです。
これは本来あるべき姿であり、エラーが発生してクラスを完了できないため、特にあなたの助けが必要な場所です。
import java.util.ArrayList;
public class RequestForFile {
public RequestForFile(String fileName) {
User user = new User("Slavisha", "84.82.0.1");
ArrayList<User> listOfUsers = new ArrayList();
listOfUsers.add(user);
for (User someUser : listOfUsers) {
for (String request : User.fileList()) {
if (request.equals(fileName))
System.out.println(someUser + "has that file");
}
}
}
}
アイデアは、ユーザーが他のユーザーのリストを調べて、必要なファイルの場所をユーザーに返すことです。今のところ GUI はさておき、この問題を修正するときにそれを取得します。どんな助けでも感謝します。ありがとう、私はこの問題に関して何でも答えるためにここにいます。