tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル System.IO.Directory.Existsについて
投稿日: 2010/03/03(Wed) 18:14
投稿者皐月
いつもお世話になっております。WindowsXP VB2005で開発を行っています。
ファイルが存在するかを以下のSystem.IO.Directory.Existsで取得したいのですが、上手く行かないのでご存知の方ご教授ください。
以下にソースを記述します。操作の流れとしては

ファイルが存在するかチェック
存在する場合読み取り属性を外す
ファイルの書込み
ファイルを読み取り属性にする

ということをしたいのですが、ファイルが存在するかのチェックIf System.IO.Directory.Exists(DataFile) = True Thenでファイルが存在するのに処理を抜けてしまい読み取り専用となっているファイルに書き込もうとしてしまうのでエラーが発生してしまいます。DataFileにファイルの名称"xxxx.dat"としているのが悪いのかと思い、"D:xxxxxxxx\bin\Debug\xxxx.dat"のようにして直接指定してみたのですが上手くいきません。
試しに、読み取り専用になっているファイルの読み取り属性を外してからもう一度動かすとファイルに書込みができましたが、これでは意味がありません。
If System.IO.Directory.Exists(DataFile) = True Thenの中の処理に入ってもらいたいのですが、どうすればよいのでしょうか?


        ChDrive(My.Application.Info.DirectoryPath)
        ChDir(My.Application.Info.DirectoryPath)

            If System.IO.Directory.Exists(DataFile) = True Then 'ファイルが存在する場合はファイルの属性のチェックを行う
                NewAttributes = OldAttributes And (Not FileAttribute.ReadOnly) '読み取り専用属性の解除
                IO.File.SetAttributes(DataFile, NewAttributes) '新しい属性をセット
            End If
            Fnum = FreeFile()
            FileOpen(Fnum, DataFile, OpenMode.Output)
            For DevNo = 0 To 94
                WriteLine(Fnum, Devicechk(DevNo))
            Next
            FileClose(Fnum)
            IO.File.SetAttributes(DataFile, FileAttribute.ReadOnly) '読み取り専用属性をセット

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。