私は長い間この質問に固執してきました。デバイス A からデバイス B にファイルを送信したい。ファイルの拡張子(「.jpg」)がわかっている場合は、ファイルをBに正常に送信でき、次のようにコードに記述します
try {
ServerSocket serverSocket = new ServerSocket(PORT);
Log.d(WiFiDirectActivity.TAG, "Server: Socket opened");
Socket client = serverSocket.accept();
Log.d(WiFiDirectActivity.TAG, "Server: connection done");
final File f = new File(Environment.getExternalStorageDirectory() + "/"
+ context.getPackageName() +"/wifip2pshared-"
+ System.currentTimeMillis() +".jpg");
File dirs = new File(f.getParent());
if (!dirs.exists())
dirs.mkdirs();
f.createNewFile();
Log.d(WiFiDirectActivity.TAG, "server: copying files " + f.toString());
InputStream inputstream = client.getInputStream();
copyFile(inputstream, new FileOutputStream(f));
serverSocket.close();
server_running = false;
return f.getAbsolutePath();
}
catch (IOException e) {
Log.e(WiFiDirectActivity.TAG, e.getMessage());
return null;
}
問題は、いくつかの種類のファイル (例: ".jpg"、".mp3"、".txt") があることです。各ファイルの種類を区別して、拡張子を含むファイル名全体を送信するにはどうすればよいですか (例: ブルーノ・マーズ- Lazy song.mp3) ではなく、ファイル名を割り当てて元のコードを入力します。前もって感謝します!