昨天有朋友问我“为什么在本地测试正常,而在服务器上创建目录就出错了”。其实这一情况我也遇到过,是权限的问题。虚拟主机一般对ASP.NET权限限制得很夸张,当然如果我们自己的服务器,也应该设置地如此夸张,不然可能给服务器导制不可估计的损失。
当时我遇到这个问题的时候也傻了一下,不过运气比较好,那时候已经用上FCKeditor了,发现居然FCKeditor上传文件,建立目录不会出错!打开项目一看,FCKeditor居然是调用系统API来解决没有权限创建目录的问题。
该方法引用
System.Runtime.InteropServices ;
使用以下方法代替Dir....Create
[DllImport("msvcrt.dll", SetLastError=true)]
public static extern int _mkdir(string path) ;
当然它也只能创建本级目录,如果要创建N级目录还要改写,具体实现大家可以自己发挥,也可参与FCK的Util.cs文件