ファイル名を変更せずにファイルを移動させるには?

解決


ヒロ  2006-06-16 15:13:37  No: 22217  IP: 192.*.*.*

いまShellChangeNotifier1Changeを使ってフォルダ1にテキストファイルが書き込まれたらフォルダ2にファイルを移動させようとおもっています。
RenameFileを使用したら、ファイル名が変わってしまうので、ファイル名を替えないでテキストファイルを移動できないでしょうか?
よろしくお願いします。

編集 削除
Syake  2006-06-16 16:36:03  No: 22218  IP: 192.*.*.*

コピーして削除
http://www.wwlnk.com/boheme/delphi/vbtodel/daf0650.html
などは、如何でしょうか?

編集 削除
ヒロ  2006-06-16 18:31:48  No: 22219  IP: 192.*.*.*

ご教授ありがとうございます。
さっそくですが、
procedure TForm1.ShellChangeNotifier1Change;
var
  kekka1 : TSearchRec;           
  old_file1 : TFileName;  
  CopyFrom  : String;
  CopyTo    : String;
  TempPath  : array [0..MAX_PATH] of  char;


begin
   old_file1 :='C:\csv\1_*';
   if FindFirst(old_file1,faAnyFile,kekka1) = 0 then
  begin
    CopyFrom  := 'C:\csv\1_*' ;
    GetTempPath(SizeOf(TempPath), TempPath);
    CopyTo    :=   'C:\index\1\1_*';
    CopyFile(PChar(CopyFrom),PChar(CopyTo),False);
   end;
   FindClose(kekka1);
end;
このようにしてテキストファイルの最初の1_の名前のついたもののみコピー使用としましたが。コピーできません。
CopyFrom  := 'C:\csv\1_*'とCopyTo    :=   'C:\index\1\1_*';の所で、
1_のファイル名のみをコピーするにはどうしたら良いでしょうか?

編集 削除
igy  2006-06-16 20:43:58  No: 22220  IP: 192.*.*.*

FindFirst関数、FindFirst関数を使い、
条件に合うファイルを1つ1つコピー
するのは、どうですか?

編集 削除
igy  2006-06-16 21:32:18  No: 22221  IP: 192.*.*.*

訂正です。
× FindFirst関数、FindFirst関数を使い、
○ FindFirst関数、FindNext関数を使い、

編集 削除
風来坊  2006-06-16 22:13:51  No: 22222  IP: 192.*.*.*

SHFileOperation でやるのはどうですか?

procedure TForm1.TntButton1Click(Sender: TObject);
var
  fos:  TSHFileOpStruct;
begin
  with fos do 
  begin
    wnd := Handle;
    wFunc := FO_COPY;
    pFrom := PChar('C:\My Documents\1*.*' + #0#0);
    pTo := PChar('C:\MyDocuments\Back\' + #0);
    fFlags  := FOF_FILESONLY or FOF_ALLOWUNDO; // FOF_ALLOWUNDO はいらない?
    fAnyOperationsAborted := False;
    hNameMappings := nil;
    lpszProgressTitle := nil;
  end;
  SHFileOperation(fos);
end;

編集 削除
ヒロ  2006-06-18 22:07:35  No: 22223  IP: 192.*.*.*

SHFileOperationとFindFirst関数、FindNext関数参考になりました。
ありがとうございます。

編集 削除