Lazarusでネットワークドライブへのコピーが失敗する(解決) – Information Teaching Service 雄飛

Lazarusでネットワークドライブへのコピーが失敗する(解決)

お久しぶりでございます。

ITservice雄飛です。

今回は、表題の通りです。

先ず、実行できなかった環境の前提条件として。

Lazarusには、コピーに関するライブラリが用意されていないので、OSの機能を使います。

今回の端末は、Windows機ですので、WinAPIになります。

UsesにWindowsを追加して使う、アレですね。
CopyFileコマンドになります。

詳しい原因は不明ですが、ネットワークドライブへは、こちらからはコピーできませんでした、一つも。

かといって、それで諦めてもしょうがない。

試しに、BATからコピーすると、コピーはきちんと成功します。

どうやら、CopyFileはネットワークドライブへのコピーは対応していないっぽい。

とにかく、コピーさえできれば良くて、方法は問いません。

逆転の発想。

じゃぁ、BAT呼び出しちゃえばいいじゃん。

  Copy [コピー元ファイル名(念の為フルパス)] [コピー先フォルダ名+コピー先ファイル名]

で、StringListやら何やらに、コピーする枚数分書き出していって、それを、ファイルに保存します。

勿論、BAT形式(拡張子.bat)で。

後は、ShellExecute関数を使って、Batファイルをプログラムから呼び出します。

BAT呼び出すときに出る、黒い画面が嫌な場合は、

引数を、SW_SHOWからSW_HIDEに変えて、Window非表示にすればOK。

これで、ネットワークフォルダへのコピーは完了しました。

以上。

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です