|
알려주신 다음부분에 메소드가 존재하지 않습니다.
pItem->OwnerName = "anonymous";
pItem->GroupName = "all";
pItem->OwnerPermissions = "---";
pItem->GroupPermissions = "---";
pItem->UserPermissions = "---";
제가 빌더 2010을 사용하는데 혹시 indy 버전차이때문일까요???
-----------------------------------------------------------------------
Starlet 님이 쓰신 글 :
: 원인이 뭔지 정확히는 모르겠지만,
: 다음을 추가해 보시기 바랍니다.
:
: 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);
: : }
: :
: : 혹시 해결방법을 아시는분이 계시면 답변좀 부탁드립니다.
|