我在这个问题上停留了很长时间。我想将文件从设备 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”)如何区分每个文件的类型并发送包含扩展名的整个文件名(例如:Bruno Mars- Lazy song.mp3)而不是分配文件名并输入我的原始代码。提前致谢!