ソフトウェアの一部のユーザーが、有線のDirectoryNotFoundException
例外によって発生した問題を報告することがあります。これは、Vistaを実行している一部のユーザーにのみ発生します。 Vistaを使用しているすべてのユーザーにこの問題があるわけではありませんWin7やXPを実行しているユーザーからは、この問題は報告されていませんでした(ただし、これらのシステムではこの問題は発生していないことは証明されていません)。VistaでProgramDataにアクセスしたときにパスの一部が見つかりませんでした - WinIOError
私たちのソフトウェアは、ProgramDataフォルダ内にいくつかのグラフィックスデータを保存します。プログラムは次の例外がスローされ、それらのファイルを読み込もうとした場合:\はProgramData \マイアプリケーション名\サブフォルダ\サブフォルダ:
Message: Could not find a part of the path 'C:\ProgramData\My App Name\Subfolder\Subfolder'.
mscorlib
in System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
in System.IO.Directory.InternalGetFileDirectoryNames(String path, String userPathOriginal, String searchPattern, Boolean includeFiles, Boolean includeDirs, SearchOption searchOption)
in System.IO.Directory.GetFiles(String path, String searchPattern, SearchOption searchOption)
in System.IO.Directory.GetFiles(String path)
パスはCです。フォルダが存在する - 私は100%確信しています。それはNSISインストーラによって作成されました。それはすべてのユーザに書き込み可能です(少なくとも、NSISスクリプトを使って設定する必要があります)。ユーザーはフォルダが存在することを確認し、Windowsエクスプローラを使用してその場所に移動できます。
私はそれがUACの問題だと思っていましたが、例外はと答えましたの一部を見つけることができませんでした。テストシステムで問題を再現することができないので、これは私を夢中にさせます。構成に関係なく。 XP、Vista、Win7 - 私たちのマシン上で動作します。
.NETのファイルを読み取れない場合に備えて、単純なif(!File.Exists(path))文をこのコード行の直前で実行しようとしましたか? – Josh
"パスはC:¥ProgramData¥My App Name¥Subfolder¥Subfolderです。フォルダは存在します - 私は100%確信しています。あなたはNSISインストーラに頼っているので100%確信しているのですか、または問題のマシンで起動 - >実行 - > "C:\ ProgramData \ My App Name \ Subfolder \ Subfolder"そのようなフォルダの内容ですか? –
@AJ。 - ユーザーは、Windowsエクスプローラを使用してそのパスに移動できることを確認しました。私はスクリーンショットを見た。 – SiliconMind