タイトル | : System.IO.Directory.Existsについて |
記事No | : 9924 |
投稿日 | : 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) '読み取り専用属性をセット
|