if(OpenDialog1->Execute())
{
// c:\test\tmp\test.txt
Edit1->Text = OpenDialog1->FileName;
}
만약 위처럼 선택한 후 폴더 및 파일에 대한 수정작업을 하려고 합니다.
이름 변경, 위치 변경, 삭제 등.
그런데 위처럼 하게 되면 정작 test.txt 파일에 대한 수정에는 문제가 없으나,
c:\test\tmp\ 경로에 대한 핸들이 잡혀 있어 디렉토리 명을 변경하는 등에 문제가 발생합니다.
OpenDialog가 하는 일은 단지 작업할 경로만 가져와서 수정을 하고 싶은건데.
OpenDialog가 핸들을 잡고 있어서 수정이 안되고 있습니다.
///////////////////////////////////////////////////////////////////////////////////////////////
heaven2 님이 쓰신 글 :
: OpenDialog를 열 때 항상 일정한 디렉토리를 지정하고 싶으신건가요?
: 그렇다면..이렇게 하니 되네요.
:
: OpenDialog1->FileName = "default로지정할 파일명"; // "C:\\Program Files\\aa.txt" 이렇게..
: OpenDialog1->Execute();
:
:
: 범이 님이 쓰신 글 :
: : 아래의예와 같이 특정 파일을 선택하고 그에 대한 수정작업을 하려고 합니다.
: :
: : if(OpenDialog1->Execute())
: : {
: : Edit1->Text = OpenDialog1->FileName;
: : }
: :
: : 만약 선택한 파일이 c:\test\tmp\test.txt 를 선택하였을 경우에
: : 이때 c:\test\tmp\ 디렉토리에 대해 핸들을 잡고 있더라구요.
: :
: : 정작 파일 자체에는 핸들을 잡지 않고요.
: :
: : 이렇게 잡혀 있는 핸들을 다시 위 코드처럼 해서 다른 폴더의 파일을 선택하면
: : 위 디렉토리의 핸들이 풀리구요
: :
: : OpenDialog1->FileName = "다른 디렉토리 파일";
: : 위처럼 코드상에서 바로 다른 파일을 선택할 때엔 이전 디렉토리가 잡혀 있구요.
: :
: : 이에 대한 핸들 해제를 어떻게 해야 할지 조언을 부탁 드립니다.
|