0

こんにちは、C#/asp.net webforms を使用して新しいディレクトリを作成しようとしていますが、うまくいかないようです。コードは次のとおりです。

    string path = "~/Images/avatar/" + User.Identity.Name + "/userAvatars/";
     private void createPath(string path)
     {
           string activeDir = @"~/Images/avatar/userAvatars";
           if( !Directory.Exists(Server.MapPath(path)) )
           {
               string newPath = Path.Combine(activeDir, User.Identity.Name);
               Directory.CreateDirectory(newPath);
            }
      }
     createPath(path)

このコードはエラーをスローしませんが、ドライブの文字から始まる物理ディレクトリを指定しない限り、フォルダーを作成しません。例:

D:\Projects IDE\Visual Studio\MyWork\Websites\Forum

ある時点でアプリケーションをサーバーにアップロードする必要があるため、これは機能しません。

では、プロジェクトのルートを取得してこのコードを機能させるには、どうすればファイルパスを設定できますか?

4

2 に答える 2

1

これを試して

string newPath = HostingEnvironment.MapPath(Path.Combine(activeDir, User.Identity.Name)
Directory.CreateDirectory(newPath);

Path.Combine を使用した後、newPath をマップするのを忘れています。

于 2012-12-02T01:22:34.923 に答える
0

あなたが作るべきです

Directory.CreateDirectory(Server.MapPath(newPath));
于 2012-12-02T01:27:10.153 に答える