지금 파일이 있는 디렉토리를 자동으로 인식해서 원하는 파일을 자동으로 복사해주려고 합니다.
예를 들면
지금 A 라는 파일이 어느 디렉토리에 있는지 알지못하지만 c:windows 디렉토리에 복사
하려고 합니다.
procedure TForm1.FormCreate(Sender: TObject);
var
F : TShFileOpStruct;
begin
F.Wnd := Handle; // if 0, then no parent and can task switch away
F.wFunc := FO_COPY;
F.pFrom := '???';
F.pTo := 'c:windows';
F.fFlags := FOF_ALLOWUNDO or FOF_RENAMEONCOLLISION;
if ShFileOperation(F) <> 0 then ShowMessage('Copy Failed');
위와 같은 예제가 있어서 사용해 보았는데 F.pFrom 부분에 디렉토리를 직접쓰지 않고
자동으로 현 실행하고 있는 파일(A)의 디렉토리를 입력하려면 어떻게 해야할지....
부탁드립니다.
extractfilepath(ParamStr(0)) 를 이용해 보았는데
'incompatible types : string and pchar' 라는 에러 메세지만 뜨는데 방법을 모르겠어요. 꼭좀 부탁드립니다
형변환을 해주세요. PChar로...
F.pFrom := PChar(ExtractFilePath(ParamStr(0)));
^^ 항상 즐코하세요.
돌머리 wrote:
> 지금 파일이 있는 디렉토리를 자동으로 인식해서 원하는 파일을 자동으로 복사해주려고 합니다.
> 예를 들면
> 지금 A 라는 파일이 어느 디렉토리에 있는지 알지못하지만 c:windows 디렉토리에 복사
> 하려고 합니다.
>
> procedure TForm1.FormCreate(Sender: TObject);
> var
> F : TShFileOpStruct;
> begin
> F.Wnd := Handle; // if 0, then no parent and can task switch away
> F.wFunc := FO_COPY;
> F.pFrom := '???';
> F.pTo := 'c:windows';
> F.fFlags := FOF_ALLOWUNDO or FOF_RENAMEONCOLLISION;
> if ShFileOperation(F) <> 0 then ShowMessage('Copy Failed');
>
> 위와 같은 예제가 있어서 사용해 보았는데 F.pFrom 부분에 디렉토리를 직접쓰지 않고
> 자동으로 현 실행하고 있는 파일(A)의 디렉토리를 입력하려면 어떻게 해야할지....
> 부탁드립니다.
> extractfilepath(ParamStr(0)) 를 이용해 보았는데
> 'incompatible types : string and pchar' 라는 에러 메세지만 뜨는데 방법을 모르겠어요. 꼭좀 부탁드립니다