- PR -

VB6.0にて、ファイルコピー後の削除動作について質問です

1
投稿者投稿内容
すろう
常連さん
会議室デビュー日: 2003/12/02
投稿数: 24
お住まい・勤務地: 東京都
投稿日時: 2004-07-14 18:04
始めに……VBの質問はここでよいのでしょうか?(苦笑)
違っていたら正しい会議室を教えてください。

で、質問の内容なのですが、
VB6.0にて開発中のとあるツール内で、
「ある一時フォルダにあるファイルをいずこかにコピーした後、一時ファイルを削除する」
という部分があります。(コードは下記参照)
コピー自体はうまくいくものの、その後の削除処理でエラー(パス名が無効です)が出てしまいます。
推測ではプログラム中にコピー処理を行なった瞬間どこかでリソースを握ってしまい、削除処理にかかった瞬間アクセス排他になってしまうのではないかと考えてはおりますが、それでおめおめと引き下がるわけにも行きません。
どなたか「こーすればいいよ」というかたはいらっしゃいませんでしょうか?
よろしくお願いいたします。

コード始め=====================
' ファイル 比較。コピーが完了するまでループ
If Dir("コピーしたいファイルのパス") <> "" Then
Do Until FileDateTime("コピー元ファイルパス")
              = FileDateTime("コピー先ファイルパス")
      FileCopy "コピー元ファイルパス", "コピー先ファイルパス"
Loop

' 一時フォルダの削除
Kill "一時フォルダパス\*.*"
RmDir "一時フォルダパス"

コード終わり====================
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-07-15 10:26
ファイルの移動 なら 削除もできてます。
MOVE コマンドは ドライブが別でも移動になります
XCOPY には /D オプションがあります
[ メッセージ編集済み 編集者: MMX 編集日時 2004-07-15 10:29 ]
カレントディレクトリは削除できないかな

[ メッセージ編集済み 編集者: MMX 編集日時 2004-07-15 11:41 ]
ゆー
会議室デビュー日: 2005/04/08
投稿数: 1
投稿日時: 2005-04-08 15:07
ほぼ同様の内容で悩んで解決策を探していたところです。

RmDir "一時フォルダパス"

の一文を

If (Dir("一時フォルダパス", vbDirectory) <> "") Then RmDir "一時フォルダパス"

に変えたところ動作しました。
なぜこれで出来たのかは、さっぱり分かりませんが。
1

スキルアップ/キャリアアップ(JOB@IT)