4

私が試したこのコード魔女を見つけましたが、うまく機能しますが(!)。選択したフォルダーにファイルを保存し、再度選択したフォルダーからファイルを取得したいと考えています。送信者は引数を取得するので、 /home/user/test.txt のような引数を指定すると、それで問題ないと思いますが、ファイルを特定のフォルダーに保存する方法がわかりません (サーバー部分、つまり )。何か案は?

私が議論について間違っている場合は、必ず私を訂正してください:D

PS: Netbeans のデフォルト フォルダー (送信者またはサーバーのフォルダーの指定なし) に対しては問題なく動作します。

どんな助けでも感謝します。

4

1 に答える 1

5

率直に言って、あなたの宿題をするのは気分が悪いですが、私はちょうど良い気分です:)

以下のコード (FileReciever) では、main() に渡された最初の引数から初期化される新しい変数フォルダーを追加しました。したがって、ファイルを保存するフォルダーの名前を最初の引数として渡す必要があります。私が変更した唯一の他の行は次のとおりです。 File file=new File(folder, file_name);

private String folder = "";
public static void main(String[] args) {
try {
  folder = args[0];
  ServerSocket listener = new ServerSocket(port);

  while (true) {
    FileReceiver file_rec = new FileReceiver();
    file_rec.socket = listener.accept();  

    new Thread(file_rec).start();
  }
}
catch (java.lang.Exception ex) {
  ex.printStackTrace(System.out);
}

}

public void run() {
    try {
      InputStream in = socket.getInputStream();


  int nof_files = ByteStream.toInt(in);

  for (int cur_file=0;cur_file < nof_files; cur_file++) {
    String file_name = ByteStream.toString(in);

    File file=new File(folder, file_name);

    ByteStream.toFile(in, file);
  }
}
catch (java.lang.Exception ex) {
  ex.printStackTrace(System.out);
}

}

于 2010-01-07T02:10:49.660 に答える