나는 오랜 시간 동안이 질문에 쑥쑥 댔다. 장치 A에서 장치 B로 파일을 보내려고합니다. 문제는 지금은 파일의 여러 종류를 가지고있다소켓을 통해 장치 A에서 B로 파일을 보내는 동안 파일 이름을 가져 오는 방법 (확장자 ".jpg"또는 "mp3"포함)
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;
}
을 다음과 같은 I 성공적으로 (". JPG")을 이미 파일의 확장자를 알고있는 경우 B로 파일을 전송하고 그냥 내 코드에서 쓸 수 있습니다 (예 : : ".jpg", ".mp3", ".txt") 파일 이름을 지정하는 대신 확장명 (예 : Bruno Mars-Lazy song.mp3)을 포함하여 각 파일의 형식을 구분하고 전체 파일 이름을 보내려면 어떻게해야합니까? 원래 코드를 입력하십시오. 미리 감사드립니다.
당신의 코드에서 볼 수있는'f.getAbsolutePath();'는 확장을 포함한 전체 경로를 반환합니다. – MAC
안녕 MAC, 내 질문은 내가 장치 B에서 파일을 전송하고 파일의 이름 (확장명을 포함)와 파일을 만들 때 장치 A에서 파일 이름을 얻고 싶습니다. 파일의 확장명이 없다면, 내 transferd 파일은 올바른 형식으로 저장되지 않았습니다 (ABC.jpg 대신 ABC). 따라서 ABC 파일을 열 수 없습니다. 감사합니다. – dddog