だから...私はあなたがファイルにアクセスしたがパスなしで名前を指定したとき(私の場合はCAISLog.csv)、.NETはファイルが実行中の.exeと同じパスにあることを期待すると思っていました。
これは、ソリューション(C#.NET2。* VS2K5)をステップ実行しているが、ファイルにアクセスする代わりに通常モード(Websphere MQトリガーモニターによって開始され、ネットワークサービスとしてバックグラウンドで実行されている)でアプリを実行している場合に機能します.exeが検索されているパスで、C:\ WINDOWS\system32にあります。重要な場合親タスクの.exeは、私のアプリとほぼ同じフォルダー構造/パスにあります
一致するエラーが発生します:「System.UnauthorizedAccessException:パス'C:\ WINDOWS \ system32\CAISLog.csv'へのアクセスが拒否されました。」
私の回避策は、ファイルの場所を完全に修飾することです。ただし、理解したいのは、「IO中にファイル名のみが指定された場合に、パスがどのように解決されるかを管理する.NETルールとは何ですか?」です。 私はいくつかの基本的な概念が欠けていると感じており、それは私をひどく悩ませています。
編集-それ自体が.NETルールかどうかはわかりませんが、Schmuliは概念をもう少し明確に説明しているようです。私は間違いなくRobProuseの提案を将来試してみるので、それも+1します。
誰かが私の.exeへのパスを見つけることを本当に気にしないことを強調するいくつかの言い換えの提案がある場合-むしろ相対的なパス解決で何が起こっているのか理解していませんでした(そして私はまだ私の用語を台無しにしているかもしれません) ..。。