掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ファイルの大量コピーを早く行う方法は? (ID:31210)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
初めまして。 テストファイルの作成のため、1つのjpg画像(50k程度)を数百万件の コピーを行いたいのですが、10数万件を超えたあたりで速度が低下してしまい、 対策が見つかりません。Windowsの問題かもしれませんが解決策や代替の案が ありましたら、どうぞよろしくお願い致します。 環境はWindowsXP。Thread内でファイルコピーを行っています。 出来ることならGUIで作成したいと思います。 procedure TMyThread.Execute; var mstm: TMemoryStream; OpenFileName, SaveFileName, File_Name: String; i : Integer; CopyCount :Integer; begin roopflg := True; File_Name := MainForm.FileName_Edit.Text; OpenFileName := MainForm.TargetFileName_Edit.text; SaveFileName := MainForm.SaveFolder_Edit.Text +'\'; CopyCount := StrToInt(MainForm.CopyCount_Edit.text); mstm := TMemoryStream.Create; try mstm.LoadFromFile(OpenFileName); for i := 1 to CopyCount do begin //TMemoryStreamを定期的にFreeして実験 if ((i mod 10000) = 0) do begin mstm.Free; mstm := TMemoryStream.Create; mstm.LoadFromFile(OpenFileName); end; mstm.SaveToFile(SaveFileName + File_Name + IntTostr(i)+ '.jpg'); FCount := i; Synchronize( CountUp ); end; finally mstm.Free; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.