私はC#プログラムを持っていますが、相対パス./report/report1.rdlc
からファイルを読み込みますが、まったく別の場所からファイルが見つかったという未知の理由がありましたC:\Windows\system32\report\report1.rdlc
ファイルは実際には場所ですC:\Program Files (x86)\Application1\report\report1.rdlc
で、プログラムはC:\Program Files (x86)\Application1\
です。相対パスが作業ディレクトリから始まっていない理由は何ですか?C#相対パスが作業ディレクトリから始まっていない
2
A
答えて
1
作業ディレクトリから始まります。ただし、特定のIOタスク(たとえば、オープンファイルダイアログまたはDirectory.SetCurrentDirectory
メソッドなど)が実行された場合に変更できるため、作業ディレクトリは使用しないでください。代わりに、AppDomain.CurrentDomain.BaseDirectory
プロパティを使用して、アセンブリファイルが配置されているパスを取得する必要があります。あなたはそのようにこれを使用することができます。
var relativePath = Path.Combine ("report", "report1.rdlc");
var baseDirectory = AppDomain.CurrentDomain.BaseDirectory;
var absolutePath = Path.Combine (baseDirectory, absolutePath);
今、あなたは、ファイルへのアクセスをabsolutePath
で動作するはずです。
関連する問題
- 1. 作業ディレクトリからの相対パスを取得する方法は?
- 2. Lua:別の作業ディレクトリから相対インポートが失敗する
- 3. 相対パスを使って作業するときEclipseのプロジェクト作業ディレクトリを設定する
- 4. C#相対パスがディレクトリかGUIDかファイルかを確認してください
- 5. PHPが他のディレクトリから作業していない
- 6. 相対パスから絶対パスを取得するC#
- 7. XSLT絶対パスからの相対パス
- 8. ビジュアルスタジオC++相対パス
- 9. 相対パスがlobgack.xmlに含まれていないファイル
- 10. パスが絶対パスか相対パスかを確認してください
- 11. FileStreamが相対パスで動作していません
- 12. 相対パスが機能しない
- 13. ProxyPassReverseがロケーションの相対パスに対して有効でない
- 14. 相対パス。 baseUrlとionic2上で動作しないパス - angular2
- 15. Powershell相対パスからレポファイル
- 16. Mono/ASP/lighttpd/Linux:相対パスが動作しない
- 17. Java Paths.get .... readAllBytes(path))が相対パスで動作しない
- 18. htaccess:相対パスが正しく動作しない
- 19. PHPでの相対パスがサーバー上で動作しない
- 20. 相対パスがカスタムフォントで動作しない
- 21. 外部のCSSの相対パスが動作しない
- 22. Django FilePathFieldが相対パスで動作しない
- 23. ユニットテストプロジェクトでの相対パスc#
- 24. C#アプリケーションの相対パス
- 25. Webpackが動作していないReactでの相対パスの解決
- 26. 相対パスからの絶対URL
- 27. データ/資産とポータブル/相対パスで作業するMeson
- 28. ユーザ作業ディレクトリ:XP対Vista
- 29. パスで相対パスが機能しない
- 30. デバッグ時に相対パスが設定されていない、なぜですか?
作業ディレクトリは不要です。実行可能バイナリが存在するディレクトリと同じディレクトリです。 – zerkms
「C#プログラム」はどこですか? –
'C:\ Windows \ system32 \ report \'に 'report1.rdlc'を見つけようとしたときに、あなたはどのようにプログラムを起動しましたか?内部のパスが 'C:\ Windows \ system32 \ 'の間に' cmd'コンソールの内部で起動しましたか? – abto