日期:2014-05-18  浏览次数:20951 次

为什么Directory.CreateDirectory 出错
string   UserDirectory   =   "TestFileId ";//所要创建文件夹的名字,实际运用中可为用户注册ID
                        string   UserPath   =   Server.MapPath( "MT ").ToString()   +   "\\ "   +   UserDirectory   +   "\\ "   +   "ProductsImages ";
   
UserPath=Server.MapPath(UserPath);

                        if   (!System.IO.Directory.Exists(UserPath))   //如果文件夹不存在则创建
                        {
                                Directory.CreateDirectory(UserPath);
                        }

----------
System.Web.HttpException:   “D:\xxx\MT\TestFileId”不是有效的虚拟路径。   在   System.Web.VirtualPath.Create(String   virtualPath,   VirtualPathOptions   options)   在   System.Web.HttpServerUtility.MapPath(String   path)   在   Dhtml.btnCreate_Click(Object   sender,   EventArgs   e)   位置   d:\xxx\MT\default.aspx.cs:行号   177  

明明D:\xxx\MT\TestFileId路径存在呀

------解决方案--------------------
你应该是在这句就出错了吧:

Server.MapPath( "MT ")
------解决方案--------------------
MT是虚拟目录吗,试试这些:

Server.MapPath( "/ ")
Server.MapPath( "~ ")
------解决方案--------------------
string UserDirectory = "TestFileId ";//所要创建文件夹的名字,实际运用中可为用户注册ID

string UserPath = Server.MapPath( "MT ").ToString() + "\\ " + UserDirectory + "\\ " + "ProductsImages ";

UserPath=Server.MapPath(UserPath);

你用太多个Server.MapPath了,用一个就行了.

------解决方案--------------------
断点调度..总能找到你要的...
------解决方案--------------------
你使用Server.MapPath有问题,这个只能映射虚拟目录,

你先用Server.MapPath( "/ ")取当前虚拟目录的物料目录,然后再加上你的子目录。
------解决方案--------------------
提示什么?
------解决方案--------------------
UserPath=D:\xxx\MT\TestFileId\ProductsImages

返回与 Web 服务器上的指定虚拟路径相对应的物理文件路径。
public string MapPath (
string path
)

string fname =Server.MapPath(UserPath)+ "\\preview.html " ;

????用错了!