VB6 上書き禁止かどうかをチェックする方法


m  2006-02-13 22:33:39  No: 94172

VB6
上書き禁止かどうかをチェックする方法はありますでしょうか?
ファイルを上書きする場合に上書き出来なかったら何もしないというのをしたいのです。


魔界の仮面弁士  2006-02-13 23:01:21  No: 94173

ファイル属性の判定という話であれば、GetAttr 関数。
ファイルロックの話になるなら、実際にOpenしてみればOK。

> 上書き出来なかったら何もしないというのをしたいのです
On Error で判定できるかと思います。

# たとえ事前判定ができたとしても、判定してから実際に開くまでの
# 僅かなタイミングで、ファイルの状態が変化する可能性はありますから、
# いずれにしても、エラーチェックは必要になりますね。


m  2006-02-13 23:08:54  No: 94174

ありがとうございます。
実際にチェックしたいのは「EXE」や「DLL」なのですが可能でしょうか?


dark  2006-02-13 23:17:55  No: 94175

> 実際にチェックしたいのは「EXE」や「DLL」なのですが可能でしょうか?
試してみてから聞くべきなのでは?


m  2006-02-13 23:21:29  No: 94176

実際に試してうまくいきましたが、EXEやDLLをOPENしても影響はないのかが
知りたいのです。


m  2006-02-14 00:41:52  No: 94177

ちなみに、以下コードです。
追加書き込みでファイルを開いて確認してます。

Private Function CheckFileCopy(ByVal FilePath As String) As Boolean
On Error Resume Next

    Dim intFileNo As Integer

    If Dir$(FilePath) = "" Then
        Filechk = True
    Else
        intFileNo = FreeFile()
        Open FilePath For Append As intFileNo
        If Err.Number = 0 Then
            CheckFileCopy = True
        Else
            CheckFileCopy = False
        End If
        Close intFileNo
    End If

End Function


123  2006-02-14 06:28:07  No: 94178

ではOpenがどういった操作をしているかを知る必要がありますね。
Openステートメントのヘルプを先ず読んでみて下さい。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加