如何在 .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账户写权限