1

相対パスを使用できないのはなぜIO.StreamReader("Resources/file.txt")ですか?

私はWebアプリを使用しているので、明らかにファイルは開発マシンとサーバーの間で同じ絶対位置に配置されません。

ファイルを見つけるためにファイル名パスを修正するにはどうすればよいですか?

参考までに、パス "Resources / file.txt"にファイル(それを呼び出すページに対して)がありますが、愚かな関数はルート "C:\ Program Files(x86)\ Microsoft Visual Studio 9.0 \ Common7\IDEを探しています。」念のため、現在.NET3.5を使用しています。

ありがとう。:)

4

2 に答える 2

2

HttpContext.Current.Server.MapPath(filename)を使用して、ファイルへの相対パスを文字列として検索し、次のようにIO.StreamReaderに渡します。

Dim sr As New IO.StreamReader(HttpContext.Current.Server.MapPath(filename))
Dim text As String = DirectCast(sr, IO.TextReader).ReadToEnd() 'gives you text
于 2012-08-27T23:34:02.230 に答える
2

これは、作業フォルダーがWebルートの場所ではなく、アプリケーションの場所であるためです。Visual Studioアプリケーションが存在する場所を開発する場合、ライブサーバーではIISアプリケーションが存在する場所になります。

仮想パスと、Server.MapPathそれをWebルートに相対的なフォルダーにマップする方法を使用します。

StreamReader(Server.MapPath("Resources/file.txt"))
于 2012-08-27T23:38:29.260 に答える