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
[71917] Re:파일명 바꾸기 질문드려요
박우성 [solgari] 3527 읽음    2014-10-25 10:27
rename이나, RenameFile이나 둘다 파라메터에 Full path로 넣어야 합니다.
그렇지 않고, 파일명만 넣으면 Current Directory 기준으로 처리를 하게 됩니다.

rename(c), RenameFile(C++빌더) 함수 말고, 윈도우 API 함수인 MoveFile을 사용해도 됩니다.

그리고, 소스를 보니까,  FindFirstFile과 FindNextFile함수의 사용이 조금 잘 못된 부분이 있네요.

hfind = FindFirstFile(....);

if( hfind != INVALID_HANDLE_VALUE ){
    do{

          // do something

    }while( FindNexfFile(...)  );
     FindClose( hfind ); // 반드시 있어야 함
}

이와 같은 형태로 사용하여야 합니다.



이영섭 님이 쓰신 글 :
:
:
:  그리드에 파일명을 쭉 받아서 한번에 바꾸는 매크로를 만들려고 하는데, 이상하게 파일명이 안바뀌네요.
:
: 볼랜드 2010쓰고있고, 관련부분 소스 올려요.
:
:   RenameFile // rename 두개 함수가 둘다 반응이 없는데, 이런경우는 어찌해야하는지 조언 부탁드려요.
:
:  //-------
:     char str[10] = "";
:
:     filehandle = FindFirstFile((Path+"\\*.*").t_str(), &filedata) ;
:
:     bool flag;
:     for (int i=0;  i < sg_Name->RowCount; i++)
:     {
:         FindNextFile(filehandle, &filedata);
:
:         for(int j=0; j < sg_Name->RowCount ; j++)
:         {
:             if(strcmp(filedata.cFileName , sg_Name->Cells[1][j].t_str())==0)
:             {
:                 sprintf(str, "%d_001",j);
:                 flag = RenameFile(filedata.cFileName ,str);// sg_Name->Cells[2][j]);
:                 flag = rename(filedata.cFileName, str); //sg_Name->Cells[2][j].t_str() );
:                 break;
:             }
:
:
:         }
:     }
:     Update();
:
: //----

+ -

관련 글 리스트
71915 파일명 바꾸기 질문드려요 이영섭 3470 2014/10/24
71917     Re:파일명 바꾸기 질문드려요 박우성 3527 2014/10/25
71919         Re:Re:파일명 바꾸기 질문드려요 3701 2014/10/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.