代码之家  ›  专栏  ›  技术社区  ›  Tvd

尝试创建文件夹,但它在不同位置创建

  •  1
  • Tvd  · 技术社区  · 11 年前

    在我的 ASP.NET WEbForms 应用程序,我想创建一个文件夹并在其中保存文件。在我的项目中,我有一个名为 CRMImages/Projects 。我想在Projects文件夹中创建一个子文件夹&保存图像。目前,我从CRMImages/检索图像作为父文件夹。

    这是我在代码背后的代码:

                    try
                    {
                        string pathToCreate = "~/CRMImages/Projects/" + item.ProjectId;
                        string myFileName = "";
                        if (!Directory.Exists(Server.MapPath(pathToCreate)))
                        {
                            DirectoryInfo di = Directory.CreateDirectory(pathToCreate);
                            var user = System.Security.Principal.WindowsIdentity.GetCurrent().User;
                            var userName = user.Translate(typeof(System.Security.Principal.NTAccount));
                            System.Security.AccessControl.DirectorySecurity sec = di.GetAccessControl();
                            sec.AddAccessRule(new System.Security.AccessControl.FileSystemAccessRule(userName,
                                System.Security.AccessControl.FileSystemRights.Modify,
                                System.Security.AccessControl.AccessControlType.Allow));
                            di.SetAccessControl(sec);
                            Directory.CreateDirectory(pathToCreate);
    
                            System.Diagnostics.Debug.WriteLine("FOLDER CREATED PATH : " + di.FullName);
                            myFileName = pathToCreate + "/projectLogo.png";
                            System.Diagnostics.Debug.WriteLine("PATH To Save Logo File & NAME : " + myFileName);
    
                            /*
                            if (File.Exists(item.ProjectLogoUrl) ) {
                                FileUpload projLogoUpload = new FileUpload();
                                if (projLogoUpload.HasFile) {
                                    myFileName = pathToCreate + "/projectLogo.png";
                                    projLogoUpload.SaveAs(myFileName);
                                }
                                // panFileBtn.SaveAs(filePath);
                            }  */
                        }
                    }
                    catch (Exception ex)
                    {
                        System.Diagnostics.Debug.WriteLine("EXCEPTION While SAving File : " + ex.Message + "\n *** STACK" + ex.StackTrace);
                    }  
    

    代码执行,但我看不到在项目文件夹中创建的文件夹。假设item.ProjectId的值为“EMP3”,我在上面的代码执行中看到的日志是:

    FOLDER CREATED PATH : C:\Program Files (x86)\IIS Express\~\CRMImages\Projects\EMP3
    PATH To Save Logo File & NAME : ~/CRMImages/Projects/EMP3/projectLogo.png
    

    我登记了 IIS Express 文件夹&在那里创建了完整的路径。你能说为什么它在IISExpress&如何在 /CRMImages/Projects 我的项目中已存在的文件夹!!

    非常感谢您的帮助。 谢谢

    1 回复  |  直到 11 年前
        1
  •  1
  •   Keval Gangani    11 年前

    您必须替换以下行

    DirectoryInfo di = Directory.CreateDirectory(pathToCreate);
    

    具有

    DirectoryInfo di = Directory.CreateDirectory(Server.MapPath(pathToCreate));
    
    推荐文章