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
[59399] Re:Re:Re:OpenDialog에 대한 디렉토리 핸들 문제.
장성호 [nasilso] 2654 읽음    2009-12-10 03:00
정말 그렇군요..

[대안]
단지 작업할 경로를 얻는것이 목적이라면
OpenDialog를 이용하지 말고 Directory선택 Dialog를 이용하는것은 어떤가요?
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=750

방금 테스트 해보니..
Directory선택 Dialog는 폴더선택이후에도 폴더 Name변경등이 문제가 없었습니다.


[원인은?]

그리고 좀전에 팁 게시판에 올려뒀는데요..
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=943

OpenDialog나 SaveDialog를 통해 File을 선택하면
process의 CurrentDirectory가 변경됩니다.

이경우 process의 CurrentDirectory가 파일이 있는 folder가 되기때문에
folder를 변경할수 없게 된것 같습니다.

결론적으로
OpenDialog의 ofNoChangeDir 옵션을 true로 해두면 문제가 해결됩니다.

그럼..



그럼..



음 질문이 좀 애매했 님이 쓰신 글 :
: 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 = "다른 디렉토리 파일";
: : : 위처럼 코드상에서 바로 다른 파일을 선택할 때엔 이전 디렉토리가 잡혀 있구요.
: : :
: : : 이에 대한 핸들 해제를 어떻게 해야 할지 조언을 부탁 드립니다.

+ -

관련 글 리스트
59380 OpenDialog에 대한 디렉토리 핸들 문제. 범이 2245 2009/12/08
59395     Re:OpenDialog에 대한 디렉토리 핸들 문제. heaven2 2265 2009/12/09
59398         Re:Re:OpenDialog에 대한 디렉토리 핸들 문제. 음 질문이 좀 애매했 1918 2009/12/10
59399             Re:Re:Re:OpenDialog에 대한 디렉토리 핸들 문제. 장성호 2654 2009/12/10
59414                 Re:Re:Re:Re:OpenDialog에 대한 디렉토리 핸들 문제. 범이 2073 2009/12/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.