|
감사합니다. Full Path 를 입력해야하는걸 모르고 그냥 파일명만 써서 안된거였군요.
파일 컨트롤 함수에 대해 조언해주셔서 감사합니다. 가끔 삑살라는게 있었는데, 이거 하고나니 안정적으로 버그 잡았네요.
박우성 님이 쓰신 글 :
: 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();
: :
: : //----
|