none
Windows7 アプリフォルダ中のファイルへアクセスすると、拒否される問題が起こった。 RRS feed

  • 質問

  • VB アプリの開発をしています。  以前、アプリはWinXPでうまく動作したけど、Win7にインストールしたら、問題が発生してしまった。

    問題はアプリケーションのフォルダに、アプリ必要なデータを保存すると、「アクセス拒否」というエラーになってしまいます。

    プログラムのコードは下記となります。 おかしいところが無いと思いますけど、 どうしたら良いですか? 教えて欲しいです。

    ちなみに、開発環境はWin7 VS2010を使っています。

     

    Private Sub SaveParaNor(ByVal Data as string)

    Dim path as string = My.Application.Info.DirectoryPath & "\AppliPara.txt"

            Dim TextFile As IO.StreamWriter

            TextFile = New IO.StreamWriter(New IO.FileStream(Path, IO.FileMode.Create), Encoding.Default)

            TextFile.Write(Data)

            TextFile.Close()

        End Sub


    cyo
    2011年8月11日 4:38

回答

  • とりあえず、次の URL あたりから先を読み進めてみてください。

    リソースの管理 - Windows 7 対応アプリケーションの互換性
    http://msdn.microsoft.com/ja-jp/windows/dd882533.aspx 
    2011年8月11日 5:07
  • Windows XP では期待通りに動作をしていたかもしれませんが、それはたまたまです。

    Windows XP がリリースされる遥か以前から、Program Files 配下のディレクトリに一般ユーザ権限で書き込み動作を行うことは推奨されていません。

    2011年8月11日 6:21
  • アプリフォルダは「C:\Program Files\...」です。  権限を持っているユーザであれば、大丈夫かなーと思ってしまった。 確かに、教えてくれた通り、権限が無いです。

    とりあえず、アプリ用のデータをユーザアプリケーションデータフォルダに保存すれば、問題が起こらなくなりました。

    皆さん、ご回答有難うございました。


    cyo
    • 回答としてマーク AK46.5 2011年8月11日 6:39
    2011年8月11日 6:39

すべての返信

  • アプリケーションのフォルダとは具体的にどこですか?
    もし「C:\Program Files\...」とかだとすると、権限を与えない限りアクセスエラーになります。

    ・・・ちなみに、権限を与えてよいかどうかは別問題として回答しています。

    2011年8月11日 4:58
  • とりあえず、次の URL あたりから先を読み進めてみてください。

    リソースの管理 - Windows 7 対応アプリケーションの互換性
    http://msdn.microsoft.com/ja-jp/windows/dd882533.aspx 
    2011年8月11日 5:07
  • Windows XP では期待通りに動作をしていたかもしれませんが、それはたまたまです。

    Windows XP がリリースされる遥か以前から、Program Files 配下のディレクトリに一般ユーザ権限で書き込み動作を行うことは推奨されていません。

    2011年8月11日 6:21
  • アプリフォルダは「C:\Program Files\...」です。  権限を持っているユーザであれば、大丈夫かなーと思ってしまった。 確かに、教えてくれた通り、権限が無いです。

    とりあえず、アプリ用のデータをユーザアプリケーションデータフォルダに保存すれば、問題が起こらなくなりました。

    皆さん、ご回答有難うございました。


    cyo
    • 回答としてマーク AK46.5 2011年8月11日 6:39
    2011年8月11日 6:39