Server.MapPathを使用できません


111

Server.MapPath仕事をするために何をしなければなりませんか?
私が持っていますusing System.Web;

ほかに何か?入力Serverすると、のクイック結果オプション(インテリセンス)はありませんServer

何か助けは?


1
詳細情報を提供する必要があります。これはどんなプロジェクトですか?なぜServer.MapPathを実行したいのですか?これはWebフォームプロジェクトであり、PageサブクラスまたはASPXのレンダリング関数でコードを記述していますか?
Dai

C#Winforms ..サーバー上のファイルの可用性を確認したい
a1204773

回答:


286

これを使ってみてください

    System.Web.HttpContext.Current.Server.MapPath(path);

または使用 HostingEnvironment.MapPath

    System.Web.Hosting.HostingEnvironment.MapPath(path);

1
それらは機能していません...エラー1タイプまたは名前空間名 'HttpContext'は名前空間 'System.Web'に存在しません(アセンブリ参照がありませんか?)...エラー2タイプまたは名前空間名 'Hosting'名前空間 'System.Web'に存在しない
a1204773

あなたはリサイズを使用しているように見え、あなたは、このリンクを見たいかもしれないdebugging.com/bug/18951
DotNetUser

4
私も、HostingEnvironment.MapPathが機能し、コントローラーの外で使用しています。
ルーク、

まず、プロジェクトはSystem.Web.dllを参照する必要があり、それは機能します
ihebiheb

このディレクトリ「〜/ AppData / Roaming」にあるファイルを読み取るにはどうすればよいですか?
Murlidhar Fichadia

14

プロジェクトはアセンブリを参照する必要がありますSystem.Web.dll。サーバーはタイプのオブジェクトですHttpServerUtility。例:

HttpContext.Current.Server.MapPath(path);

3
そのような参照を見つけることができない私はこの2つだけを見つけました:System.Web.ApplicationServices、System.Web.Services ....
a1204773

4

System.Web.HttpContext.Current.Server.MapPath("~/") スレッドから呼び出すとnullを返します。

だから、使用してみてください

System.Web.Hosting.HostingEnvironment.MapPath("~/")


1

System.webない場合は、最初にへの参照を追加します。Referencesフォルダーでそれを行います。

次に使用できます Hosting.HostingEnvironment.MapPath(path);


1
bool IsExist = System.IO.Directory.Exists(HttpContext.Current.Server.MapPath("/UploadedFiles/"));
if (!IsExist)
    System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath("/UploadedFiles/"));

StreamWriter textWriter = File.CreateText(Path.Combine(HttpContext.Current.Server.MapPath("/UploadedFiles/") + "FileName.csv"));
var csvWriter = new CsvWriter(textWriter, System.Globalization.CultureInfo.CurrentCulture);
csvWriter.WriteRecords(classVM);

コードのみの回答は低品質と見なされます。コードの機能と問題の解決方法を必ず説明してください。投稿にさらに情報を追加できれば、質問者と将来の読者の両方に役立ちます。完全にコードベースの回答の説明
Calos

0

System.Webプロジェクトへの参照として追加してみてください。



0

私はこの投稿が数年前のものであることを知っていますが、この行をクラスの先頭に追加すると、Server.MapPathを引き続き使用できます。

Dim Server = HttpContext.Current.Server

またはあなたは機能を作ることができます

Public Function MapPath(sPath as String)
    return HttpContext.Current.Server.MapPath(sPath)
End Function

私は物事をより簡単にすることに全力を注いでいます。また、この問題が発生した場合に備えて、Utilitiesクラスにも追加しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.