"the filename directory name or volume label syntax is incorrect" 혹시 FTP 클라이언트 측에서 위와 같은 오류가 출력 되었나요? FTP 서버 측에서 몇 개의 폴더가 있다고 가정...

[안드로이드] Error : the filename directory name or volume label syntax is incorrect(505)

 


"the filename directory name or volume label syntax is incorrect"

혹시 FTP 클라이언트 측에서 위와 같은 오류가 출력 되었나요?

FTP 서버 측에서 몇 개의 폴더가 있다고 가정했을 때,  

한글이 포함된 폴더를 Working Directory 로 변경해주면 해당 오류가 출력되는 현상을 확인하였습니다.

저와 같은 상황이였다면 아래 해결 방법을 확인해주세요.


 

 

1. 해결 방법

FTPClient connect 전에 인코딩 설정을 추가해주면 됩니다.

ftpClient.controlEncoding = "euc-kr"

 

꼭 connect 하기 전에 설정 해주세요! 

(제가 connect 한 후에 설정해줬는데 같은 문제가 있었네요..ㅠ)

 

끝으로 FTP Client 측 소스 일부를 참조 해주시면 감사하겠습니다.

try {
val ftpClient = FTPClient()

ftpClient.controlEncoding = "euc-kr"

ftpClient.connect(address, port)
val isConnected = FTPReply.isPositiveCompletion(ftpClient.replyCode)
if (!isConnected) {
Log.d("FTP", "${ftpClient.replyCode}, ${ftpClient.replyString}")
ftpClient.disconnect()
return
}

//ftpClient.controlEncoding = "euc-kr" // connect 전에 세팅을 해줘야합니다..!

ftpClient.soTimeout = 10000

val isSuccess = ftpClient.login(id, password)
if (!isSuccess) {
Log.d("FTP", "${ftpClient.replyCode}, ${ftpClient.replyString}")
ftpClient.disconnect()
return
}

val isWorking = ftpClient.changeWorkingDirectory(path) // controlEncoding 세팅이 안 되면 한글포함된 path 의 경우 문제가 발생하였습니다.
if (!isWorking) {
Log.d("FTP", "${ftpClient.replyCode}, ${ftpClient.replyString}")
ftpClient.disconnect()
return
}

/*....................*/

ftpClient.logout();
} catch (e: IOException) {
e.printStackTrace()
}

 

 

 

 

 

댓글 1개: