C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[67900] Re:Indy FTP Server 사용중 리스트 디렉토리 질문드립니다.
Starlet [starlet5] 1751 읽음    2012-08-03 20:20
원인이 뭔지 정확히는 모르겠지만,
다음을 추가해 보시기 바랍니다.

pItem->OwnerName = "anonymous";
pItem->GroupName = "all";
pItem->OwnerPermissions = "---";
pItem->GroupPermissions = "---";
pItem->UserPermissions = "---";

이렇게 5개가 빠졌는데 혹시 이것 때문일 수도 있으니 저런식으로 임의로 값을 넣어서 추가해 보시고,

문제가 한가지 보이는것이,

sr.Size는 32비트 Integer값이라서 2기가 이상을 표시하지 못합니다.

ULARGE_INTEGER li;
li.LowPart = sr.FindData.nFileSizeLow;
li.HighPart = sr.FindData.nFileSizeHigh;

pItem->Size = li;

이렇게 넣어줘야 크기가 큰 파일도 제대로 표시됩니다.


책방전설 님이 쓰신 글 :
: 제가 Indy FTP Server 컴포넌트를 사용해서 FTP server를 만들려고 하는고 있는데요.
:
: 서버생성을 해놓고 클라이언트에서 접속을 시도 하면 다음과 같이 에러나 나와서 해결방법좀 질문드려봅니다.
:
: -파일질라로 접속 했을때 다음과 같이 나옵니다.-
: 상태:    192.168.10.20:21에 연결...
: 상태:    연결 수립, 환영 메시지를 기다림...
: 응답:    220 Indy FTP Server ready.
: 명령:    USER Admin
: 응답:    331 User name okay, need password.
: 명령:    PASS ****
: 응답:    230 User logged in, proceed.
: 명령:    CLNT FileZilla
: 응답:    200 Noted.
: 명령:    OPTS UTF8 ON
: 응답:    200 Ok
: 상태:    연결됨
: 상태:    디렉터리 목록 조회...
: 명령:    PWD
: 응답:    257 "/" is working directory.
: 명령:    TYPE I
: 응답:    200 Type set to I.
: 명령:    PORT 192,168,10,20,8,133
: 응답:    502 PORT/EPRT Command disabled.
: 명령:    PASV
: 응답:    227 Entering Passive Mode (192,168,10,20,67,112).
: 명령:    MLSD
: 오류:    연결 시간 초과
: 오류:    디렉터리 목록 조회 실패
:
: 코딩부분
: void __fastcall TForm1::IdFTPServer1UserLogin(TIdFTPServerContext *ASender, const UnicodeString AUsername,
:           const UnicodeString APassword, bool &AAuthenticated)
:
: {
:     Memo1->Lines->Add("UserLogin");
:
:     AAuthenticated = ((AUsername == "Admin") && (APassword == "1234"));
:
:     if (!AAuthenticated) {
:         return;
:     }
:
:     ASender->HomeDir = "./";
:     ASender->CurrentDir = "/";
:     Memo1->Lines->Add(ASender->Username + "이 접속하였습니다.");
: }
: /--------------------------------------------------------------------------
: void __fastcall TForm1::IdFTPServer1ListDirectory(TIdFTPServerContext *ASender, const UnicodeString APath,
:           TIdFTPListOutput *ADirectoryListing, const UnicodeString ACmd,
:           const UnicodeString ASwitches)
: {
:     Memo1->Lines->Add("ListDirectory");
:     TSearchRec      sr;
:     TIdFTPListItem  *pItem;
:     int             sri;
:
:     sri = FindFirst(APath + "/*.*", faAnyFile - faHidden - faSysFile, sr);
:
:     while (sri == 0)
:     {
:         pItem = ADirectoryListing->Add();
:         pItem->FileName = sr.Name;
:         pItem->Size = sr.Size;
:         pItem->ModifiedDate = FileDateToDateTime(sr.Time);
:
:         if (sr.Attr == faDirectory)
:             pItem->ItemType = ditDirectory;
:         else
:             pItem->ItemType = ditFile;
:
:         sri = FindNext(sr);
:     }
:
:     FindClose(sr);
:     Memo1->Lines->Add(ADirectoryListing->Count);
: }
:
: 혹시 해결방법을 아시는분이 계시면 답변좀 부탁드립니다.

+ -

관련 글 리스트
67887 Indy FTP Server 사용중 리스트 디렉토리 질문드립니다. 책방전설 2012 2012/08/03
67900     Re:Indy FTP Server 사용중 리스트 디렉토리 질문드립니다. Starlet 1751 2012/08/03
67913         Re:Re:Indy FTP Server 사용중 리스트 디렉토리 질문드립니다. 책방전설 1805 2012/08/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.