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

解決


ヒロ  2006-06-17 00:13:37  No: 22217

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


Syake  2006-06-17 01:36:03  No: 22218

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


ヒロ  2006-06-17 03:31:48  No: 22219

ご教授ありがとうございます。
さっそくですが、
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-17 05:43:58  No: 22220

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


igy  2006-06-17 06:32:18  No: 22221

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


風来坊  2006-06-17 07:13:51  No: 22222

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-19 07:07:35  No: 22223

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加