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
[42271] network 에서 파일복사 ( CopyFile 파일 함수를 사용했는데..대상 컴퓨터 리소스 파일 문제)
최진호 [] 4034 읽음    2005-10-26 22:52
안녕하세요...!!

먼저 이글을 읽어 주신분에게 다시 한번 감사드립니다.!!!
local 네트워크를 사용해서(하나의 컴퓨터에서 일부 파일을 공유한후 그것을 네트워크 드라이브를 설정하고 그 폴더에 다른 컴퓨터에서 파일을 전송하는 프로그램입니다..)
그냥 제가 프로그램 만든 컴퓨터에는 잘되는데..이상하게 네트워크 드라이브를 잡고 하면
복사 속도도 느리고..공유된 컴퓨터의 컴퓨터 관리를 열어 보니까...이런현상이 발견이 되었는데(그림과 같이 파일이 열려 있는 상태로 계속존재- 참고로 제컴에선 그런 증상이 없음 )  ..어떻게 해결해야하는지 알고 싶습니다..

void __fastcall TForm3::Button1Click(TObject *Sender)
{
     BROWSEINFO BrowsingInfo;
     char DirPath[MAX_PATH];
     char FolderName[MAX_PATH];
     LPITEMIDLIST ItemID;
     memset( &BrowsingInfo, 0, sizeof(BROWSEINFO) );
     memset( DirPath, 0, MAX_PATH );
     memset( FolderName, 0, MAX_PATH );
     BrowsingInfo.hwndOwner         = Handle;
     BrowsingInfo.pszDisplayName = FolderName;
     BrowsingInfo.lpszTitle         = "폴더를 선택하세요.";
     BrowsingInfo.ulFlags    = BIF_RETURNONLYFSDIRS | BIF_VALIDATE |
     BIF_STATUSTEXT | BIF_USENEWUI | BIF_NOTRANSLATETARGETS|BIF_NEWDIALOGSTYLE|BIF_UAHINT;
     //BrowsingInfo.lpfn = BrowseCallbackProc;
     ItemID = SHBrowseForFolder( &BrowsingInfo );
     SHGetPathFromIDList(ItemID, DirPath );
     AnsiString DirPath_temp =DirPath;
     GlobalFree( ItemID );
     SHBrowseForFolder ;
                                                      ----------------이쪽은 API 함수 이용해서 폴더 열기

     if(ItemID !=NULL)
    {
      AnsiString Tpath = DirPath;
      AnsiString Tpath_save =Tpath+"\\";

      GetFilename(DirPath_temp);   ------------------ 해당폴더에서 파일 정보 읽기

     for(float j=0;j<name->Count;j++)
           {
             int handle;
             AnsiString Spath ="";
             //Spath =DirPath_temp+"\\";
             //Spath = Spath +name->Strings[j]+".TXT";
             Spath=name->Strings[j];
             if(!FileExists(Spath)) {
              Memo2->Lines->Add(name->Strings[j]);
              }
              else{

                Tpath_save = "T:\\";     ----------------------------네트워크 드라이브 설정
                Tpath_save = Tpath_save +tname->Strings[j]+".TXT";
              
                CopyFile(Spath.c_str(), Tpath_save.c_str() ,FALSE);
              
               }
            }
           // Label1->Caption = name->Count;
       ShowMessage("복사완료");
       exit(1);
       delete name;
       delete tname;
     }
    else
    ShowMessage("작업취소 되었습니다");

}


혹시 WNetAddConnection2() 이것을 이용해서 접속하고 copy 한후  접속을 끊으면서 리소스를 반환하는지..
헤헤...^^;; 너무 몰라서 죄송!!

방법이 있으면..알려주세요.


그럼..수고하세요

+ -

관련 글 리스트
42271 network 에서 파일복사 ( CopyFile 파일 함수를 사용했는데..대상 컴퓨터 리소스 파일 문제) 최진호 4034 2005/10/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.