안드로이드 ftp 클라이언트를 제작중에 있습니다.
접속을하고 로그인을 해서 리스트를 뿌려주는 것 까지는 되는데,
다운로드에서 진도가 안나가서 물어봅니다.
FTPClient.retrieveFile(); <---메소드로 다운로드 하는것 아닌가요??
다운로드를 하면 에러없이 다운로드가 진행 됩니다.
그러나 다운이 완벽하게 되지를 않습니다. 약500kb를 받고난 뒤 그 뒤는 다운이 안됩니다. 다운 받은 파일의 속성을 보면 원래 용량으로 표기가 되어있지만, 실제로 다운 되는 영역은 500kb인것 같습니다.
단적인 예로 작은 사이즈의 이미지는 다운 받으면 볼 수 있는데, 큰용량의 이미지는 이미지가 깨져서 보입니다.
작은 용량의 동영상은 재생이 되지만 큰용량은 재생과 동시에 첫화면만 보이다 바로 꺼집니다.
protected boolean FtpDownload(MListener listener, FileInfo[] dir) throws FileNotFoundException {
boolean status = false;
try {
String sdpath = Environment.getExternalStorageDirectory().getAbsolutePath();
FileInfo file = dir[0];
FileOutputStream desFileStream = new FileOutputStream(sdpath + "/" + file.getName());
status = ftpclient.retrieveFile(file.getAbsPath(), desFileStream);
desFileStream.close();
return status;
} catch (Exception e) {
Log.d("Down", "download failed");
}
return status;
}
다운로드는 이렇게 하는게 아닌가요??
한 버퍼만 받았다? 라는 느낌이 드는데 그럼 다운 받을려는 파일의 전체 사이즈를 구한뒤 버퍼를 계속 보내 주는 그런게 있나요??
궁금합니다.
질문이 정확하게 이해 되었는지 모르겠습니다.
= > ftp 파일 다운로드가 완벽하게 되지 않는다.
인데,, 감사합니다.