Я долгое время занимался этим вопросом. Я хочу отправить файл с устройства A на устройство B. Я могу успешно послать файл B, когда я уже известно расширение файла («JPG») и просто записать его в моем коде следующим образомКак получить имя файла (включая расширение «.jpg» или «mp3») при отправке файла с устройства A в 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) вместо назначения имени файла и введите мой исходный код. Спасибо заранее!
Я вижу в вашем коде 'f.getAbsolutePath();' возвращает полный путь с расширением. – MAC
Привет, мой вопрос в том, что я хочу получить имя файла с устройства A, когда я передаю файл на устройство B и создаю файл с именем файла (включая расширение). Если расширение файла отсутствует, мой файл transferd может не сохраняется в правильной форме (ABC вместо ABC.jpg). Поэтому я не могу открыть файл ABC, что мне делать? Спасибо – dddog