デジカメでjpegファイルを保存します。
そのファイルを別のフォルダへ自動的に移動させたいのですが、
保存途中の場合もあるので、
ファイルの状態(保存途中なのかどうか)を知る方法を教えて下さい。
ファイルを移動させようとして、
例外を見た方が早いと思いますが...
bobさんありがとうございます。
// ファイルを移動
try
CopyFile('c:\test\data001.jpg' ,'c:\photo\data001.jpg') ,False);
DeleteFile('c:\test\data001.jpg');
except on EFOpenError do begin
ShowMessage('ファイルが開けません!');
end;
except on Exception do begin
ShowMessage('例外が発生しました。');
end;
end;
こんな感じでいいのでしょうか?
ところで、使用中のエラーコードは、何になるのですか?
ファイル移動は RenameFile 関数で可能です。
処理結果は戻り値で判定してください。
jamさんありがとうございます。
実は、例では同じc:\でしたが、実際には別のドライブに移動しています。
環境を書いていませんでした。
Delphi7.0Jpro、WinXPです。
bobさん、jamさん
ありがとうございました。
なんとなく見えてきました。
RenameFile 関数は別ドライブでも移動可能です。
jamさん
ありがとうございます。
勉強不足で・・・
感謝します。
解決してるのにすみません、丁度僕も似たような事がやりたくて色々と参考になるものを探してたんですけど、(そしてこちらにたどり着いて・・)
探しながらこんなのを作ってみたんです。
これじゃダメなんですかね・・・
とりあえず開けるようになるまで開いてみて、
開けたえらとりあえず閉じる。一応、自分のPCで巨大なファイルを作ってみて、
それを別フォルダにコピーし・・・てる最中に下記を実行してみたら
問題ないようでしたよ。
repeat
nFileHandle := FileOpen(sPath, fmOpenRead);
until (nFileHandle > 0);
FileClose(nFileHandle);
ShowMessage('OK');
そのループだと FileOpen が成功するまで固まりますね
下記のようにしてみました。
if RenameFile(PChar(oldFile) ,PChar(newFile) ,False)=True then
begin
ShowMessage('成功');
end
else
begin
ShowMessage('移動に失敗しました。もう一度トライします。');
exit;
end;
この RenameFile はどこの関数ですか?
SysUtils.RenameFile は
function RenameFile(const OldName, NewName: string): Boolean;
で、第3引数はありませんし、ファイル名も String のまま渡せます。
Windowsでは?
ツイート | ![]() |