|
어떤 폴더를 다른곳으로 복사할때
소스 폴더아래에 폴더도 있고 ...파일도 있다면?
파일은 대상 폴더로 copy하면 되는데...
폴더인 경우에는 그 폴더 아래에 또 폴더가 있을수 있고 파일도 있을수 있으므로..
그 폴더 안으로 들어가서 같은작업을 반복해야죠?
보통 이런경우 재귀함수가 필요합니다.
void AllCopys( 소스폴더 , 대상폴더)
{
ForceDirectories(대상폴더);
TSearchRec sr;
FindFirst ..
do
{
if( sr 폴더이면 )
{
AllCopys( 소스폴더+폴더명 , 대상폴더+폴더명); //여기서 재귀호출합니다.
}
else if( sr이 파일이면 )
{
CopyFile ( 소스폴더+파일명, 대상폴더+파일명) ;
}
}while(FindNext(..))
}
위와같은 식으로 만들면 됩니다.
폴더를 전체 복사하는 함수가 검색하면 수두룩 나올것이지만...
직접 함 만들어 보세요
그럼..
네버 님이 쓰신 글 :
: 장성호님 답변 고맙습니다^^
: 이벤트를 함께 사용하고 있는걸 미처 확인을 못했네요^^
:
: 죄송한데 질문하나 더해도 될까요??
:
: 지난번에 파일 복사에 대해서 질문을 했었는데.
:
: 만약 d드라이브 밑에 폴더가 1 , 2, 3 등 여러개가 있고 각각의 폴더안에는 또 몇개의 데이타가 있습니다.
: 이럴경우 d드라이 통째로 c드라이브에 복사를 하는 방법은 없을까요?
:
:
:
: 장성호 님이 쓰신 글 :
: : 간단하게
: :
: : 1. 삭제는
: : - for문은 꺼꾸로 돌리세요
: : Items->Count -1 부터 0 까지
: : 이유는 생각해보시면 금방아실 겁니다.
: :
: : 2. 파일open과 아이템 삭제
: : ; 이벤트를 그렇게 SelectItem에 걸어놓았으니 어쩔수 없을것 같은데요
: : 파일 open부분을 DoubleClick 이벤트에 넣는것은 어떤지요?
: :
: : 그럼..
: :
: : 네버 님이 쓰신 글 :
: : : 매번 답변주시는 장성호님 너무 고맙습니다^^
: : :
: : : 클립보드 문제는 잘 해결하였습니다~
: : :
: : : 리스트뷰에 몇개의 아이템을 추가시키고 그 아이템을 클릭하면 파일을 열수있도록 처리를 하였습니다.
: : : 또한 체크박스를 사용하여 체크한 데이타를 삭제하는 기능도 넣었구요.
: : :
: : : 그런데 문제가 발생했네요.
: : : 일단 여러개의 아이템을 선택한 후 삭제할시 가장먼저 추가되었던 아이템이 삭제가 되질 않아요.
: : : ====================================================================================
: : : for(int i = 0; i < Form3->ListView1->Items->Count; i++)
: : : {
: : : if(Form3->ListView1->Items->Item[i]->Checked)
: : : {
: : : Form3->ListView1->Items->Delete(i);
: : : }
: : : }
: : : ==================================================================================
: : : 이렇게 코딩했습니다.
: : :
: : : 두번째 문제는 아이템의 캡션을 클릭하면 그 파일을 열도록 했어요.
: : : 그런데 캡션을 선택해서 그 파일을 연 다음
: : : 다시 파일을 닫고
: : : 그 아이템의 체크 박스를 선택하여 삭제 하려고 할 경우 다시 또 파일이 열린 다음에 삭제가 됩니다.
: : : ===================================================================================
: : : oid __fastcall TForm3::ListView1SelectItem(TObject *Sender,
: : : TListItem *Item, bool Selected)
: : : {
: : : ShellExecute(0, "open", event_file.c_str(), "", "", SW_SHOWNORMAL);
: : : }
: : :
: : : 아이템의 캡션을 선택한 후 그 파일을 보여주는건 이렇게 처리를 했답니다.
: : :
: : : 그럼 답변 기다리겠습니다.
|