日期:2014-05-20  浏览次数:20562 次

如何在 .CS 文件中动态创建目录? 100 分,必结 贴!

假设我的   pub.aspx.CS   文件在当前   OfficeAutomation   目录下,而   OfficeAutomation   下还有一个   OAFiles   目录:

我在   pub.aspx.CS     要如何写才能动态的在     OAFiles   中创建目录呢?

-----------------------------

例如:string   pathName   =   "2006-12-18 ";     //生成的动态目录名

然后我在   pub.aspx.CS   中这样写的:

-------------------------------

string   rootpath   =   Server.MapPath( "/OAFiles ").ToString();
string   pathName   =   "2006-12-18 ";
string   Dicpath   =   rootpath   +@ "\ "   +   pathName;

if(!Directory.Exists(   Dicpath   ))
{
      System.IO.Directory.CreateDirectory(   Dicpath   );
}


以上代码   vs.net能编译通过,运行也正常,可就是不能动态产生目录!不知道是什么地方写错了,请各位高人指点!!非常感谢   !




------解决方案--------------------
string Dicpath = MapPath( "OAFiles ").ToString() + "\\ " + pathName;
------解决方案--------------------
帮顶
------解决方案--------------------
string rootpath = Server.MapPath( "/OAFiles/2006-12-18 ")
if(!Directory.Exists( rootpath ))
{
System.IO.Directory.CreateDirectory( rootpath );
}
------解决方案--------------------
你要在服务器端创建目录,需要这级目录之上的某级目录是虚拟目录,且可写。

------解决方案--------------------
对的
要使用Server.MapPath
不然就建到临时目录里面了
------解决方案--------------------
folderName = Server.MapPath(@ ".\OAFiles\ ") + DateTime.Now.ToString( "YYYYMMDD ");

Server.MapPath(@ ". ") 获取的是asp.net web 应用程序的物理地址了,比如 "d:\wwwroot\aspnet\OAFiles " 而不是web url 比如http://localhost/aspnet/OAFiles/
至于转义字符在用于表示路径的时候,可以使用“\\ " 或者@ "\ "
Server.MapPath(@ ".\ ") 当前文件夹的物理目录的路径Server.MapPath(@ "..\ ")上一级的路径

DateTime.Now.ToString( "YYYYMMDD ")
格式化日期函数 "YYYYMMDD " 年月日 动态创建目录的名称。 如果不熟悉可以查阅msdn,关键词string.format() 了。
建议文件夹命名最好不要包含标点符号了,用26个英文字母10个数字及下划线就可以了,到时候产生歧义了,排查起来麻烦。

其他的没有什么好说的了,就是这里string rootpath = Server.MapPath( "/OAFiles ") 出了点小问题而已了,希望你能调试通过了
------解决方案--------------------
注意在该文件夹,必须有ASPNET用户修改权限,如果是2003,还必须授予NETWORK SERVICE用户权限。
------解决方案--------------------
给Users用户名加上修改的权限。
------解决方案--------------------
把你想创建目录的上级目录的安全性中允许ASP.NET账户写权限