0

再現方法は以下の手順を参照してください。Delphi 10.1 Berlin と Windows 10 を使用し、win32 にコンパイルします。

  1. 新しい VCL フォーム アプリケーションを作成する
  2. フォームに TTimer と TMemo を配置する
  3. タイマーの間隔を 10 ミリ秒に設定します
  4. このコードを OnTimer イベントに入れます。
if FileExists('named.txt') then
begin
  Memo1.Lines.Add('named.txt exists');
  DeleteFile('renamed.txt');  //delete if it exists
  if RenameFile('named.txt', 'renamed.txt') then
    Memo1.Lines.Add(' renamed OK')
  else
    Memo1.Lines.Add(' rename failed with error : '+ IntToStr(GetLastError));
end;
  1. プログラムを実行する

  2. .txt という名前のファイルを作成します

TMemo の出力は次のとおりです。

named.txt が存在する
 名前を変更しました
  1. エクスプローラーで、ファイル renamed.txt の名前を named.txt に戻します。

TMemo の出力は次のようになります。

named.txt が存在する
 名前を変更しました
named.txt が存在する
 名前を変更しました

しかし、「ファイルまたはフォルダが存在しません」というエラー メッセージが表示されます。なんで?

(Renamefile は OK を返します)。

タイマーの間隔をたとえば 500 ミリ秒に設定しても問題ないようです (エラー メッセージは表示されません)。

メッセージは次のとおりです(スウェーデン語):

画像

exeファイルを別のPCにコピーしても同じ結果になりました:

ここに画像の説明を入力

4

2 に答える 2