回答:
ServerUtility
このクラスは、あなたの中にインスタンスとして使用可能ですHttpContext
。ASP.Netパイプライン内で実行されることがわかっている環境にいる場合は、
HttpContext.Current.Server.MapPath()
System.Web
ただし、インポートする必要があります。
あなただけへの参照を追加することはできませんSystem.Web
し、あなたが使用することができますかServer.MapPath
?
編集:最近では、HostingEnvironment.MapPath
メソッドの使用をお勧めします:
これはSystem.Web
、仮想パスをサーバー上の物理パスにマップするアセンブリの静的メソッドです。それはしませんへの参照が必要ですHttpContext
。
System.Reflection.Assembly.GetAssembly(type).Location
取得しようとしているファイルが型のアセンブリの場所である場合。ただし、ファイルがアセンブリの場所に関連している場合は、これをSystem.IO
名前空間と共に使用して、ファイルの正確なパスを取得できます。
class test
{
public static void useServerPath(string path)
{
if (File.Exists(path)
{
\\...... do whatever you wabt
}
else
{
\\.....
}
}
コードビハインドからメソッドを呼び出すと
例えば :
protected void BtAtualizacao_Click(object sender, EventArgs e)
{
string path = Server.MapPath("Folder") + "\\anifile.txt";
test.useServerPath(path);
}
このようにして、コードはシンプルになり、1つのメソッドで、呼び出しごとに複数のパスを使用できます:)
これは私に役立ちました
//System.Web.HttpContext.Current.Server.MapPath //
FileStream fileStream = new FileStream(System.Web.HttpContext.Current.Server.MapPath("~/File.txt"),
FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);