ASP移动文件函数movefile权限不足的替代方法

这几天做一个项目,是写一个语句,将D盘的文件全部移动到E盘去,在本地XP环境下测试是很好的。

可是放到windows 2003服务器后,提示权限不足。

我的IIS网站目录放在D盘,而E盘只是一个新加卷,有一些文件很大也很多,但是D盘不够用了,所以出此下策。

百度了一下,很多这样的问题,无非就是增加E盘的权限啊,或者是把E盘当作虚拟目录。

可是都不管用,照样提醒,唯一的区别就是我使用的是动态卷,而XP下是基本卷,我不想改变卷盘。

最后找到了下面的办法:

用fso的movefile会出现权限不足的情况,那样代码不能执行。
所以 用copyfile 再deletefile 避免了不必要的麻烦。

即 :

代码如下:

Set fso=CreateObject("scripting.filesystemobject")
fso.MoveFile "文件路径","目标"

这个会出现问题。

用:

代码如下:

Set fso=CreateObject("scripting.filesystemobject")
fso.CopyFile "文件路径","目标"
fso.DeleteFile "文件路径"

这样果断解决了问题。复制可以移动不行。

4.30更新

后来鼓捣了一下,原来不是E盘权限的问题,而是D盘权限的问题,也就是IIS网站目录权限的问题。

给D盘加上Internet 来宾帐户,也就是加上以IUSR_开头的账户,这个账户是IIS账户。

然后使用MoveFile就没问题了。

如果要移动或者删除一个文件,首先检查的应该是源文件的权限,而不是目标文件的权限。

网上的教程真是害人啊。

(0)

相关推荐

  • ASP实现强制图片下载函数

    图片不进行处理,图片默认是用浏览器打开显示,如果希望图片变为下载可以使用以下代码 function downloadFile(strFile) strFilename = server.MapPath(strFile) Response.Buffer = True Response.Clear Set s = Server.CreateObject("ADODB.Stream") s.Open s.Type = 1 on error resume next Set fso = Serv

  • asp实现获取MSSQL数据库表指定条件行数的函数

    复制代码 代码如下: '数据库表行数函数,这是取表的行数 Function GetTblRows(TblName)     '如果TblName表名值为空,则     if TblName="" Then        GetTblRows="未知TblName"     exit Function     Else        set rec = server.createobject("adodb.recordset")        SQ

  • ASP 时间函数及如何获取服务器时间的写法

    一.常用的ASP时间函数 1.now() 获取当前系统日期和时间,ASP输出格式:<%=now()%> 2.Year(now()) 获取年份, ASP输出格式:<%=Year(now())%> 3.Month(now()) 获取当前月份,ASP输出格式:<%=Month(now())%> 4.day(now()) 获取当天数,ASP输出格式:<%=day(now())%> 5.hour(now())获取小时数,ASP输出格式:<%=hour(now()

  • asp实现截取字符串函数

    如果标题过长,因为页面布局的限制,只能列表10个字符,这个函数会帮你实现的 复制代码 代码如下: '截取字符串 strvalue(标题,字数) function strvalue(str,lennum)     dim p_num     dim i     if strlen(str)<=lennum then         strvalue=str     else         p_num=0         x=0         do while not p_num > lenn

  • ASP转换格林威治时间函数DateDiff()应用

    我今天介绍的是在ASP中如果把时间(例如:2008-8-8 13:45:22)转换成秒的函数,和相反的把秒转换成时间的函数.当然时间转换的时候.必须有一个相对的固定时间,那就是格林威治时间.大家想想因为格林威治时间是以" 1970 年 1 月 1 日 00:00:00 "开始的,ASP提供了一个叫 DateDiff() 的函数,这个函数可以返回一个时间差的秒,那就是说我们放进去一个格林威治标准时间与现在的时间对比一下返回秒就OK.但我们还要注意时区,我们中国是GMT+08:00:00(

  • asp中的Rnd 函数

    Rnd 函数 描述 返回一个随机数. 语法 Rnd[(number)] number 参数可以是任意有效的数值表达式. 说明 Rnd 函数返回一个小于 1 但大于或等于 0 的值. number 的值决定了 Rnd 生成随机数的方式: 如果 number 为 Rnd 生成 小于零 每次都相同的值,使用 number 作为种子. 大于零 序列中的下一个随机数. 等于零 最近生成的数. 省略 序列中的下一个随机数. 因每一次连续调用 Rnd 函数时都用序列中的前一个数作为下一个数的种子,所以对于任何

  • ASP函数大全解析

    Array()  函数返回一个数组 表达式 Array(list) 允许数据类型: 字符,数字均可 实例: <% Dim myArray() For i = 1 to 7 Redim Preserve myArray(i) myArray(i) = WeekdayName(i) Next %> 返回结果: 建立了一个包含7个元素的数组myArray myArray("Sunday","Monday", ... ... "Saturday&quo

  • asp与js的类型转换函数介绍

    字符串转化为整数 asp: cint()--注意只能转换短整数值的范围必须在-32768与32767之间,长整数应用clng() 如果输入的不是纯数字字符串或者空字符串,则直接500错误.所以输入前应该检查是否为数字类型. 复制代码 代码如下: Function JCID(ByVal ParaValue)     If ((Not isNumeric(ParaValue)) or (Trim(ParaValue)="")) Then             JCID=0     Els

  • ASP中实现的URLEncode、URLDecode自定义函数

    在做ajax中的post时,发现在服务器端取得数据时总是乱码,网上看了些解决方法也搞不定,我post过去时是xml形式,由于乱码服务器端xml也解析不了或出错.于是在post前先把它编码,到服务器端再解码,这样问题解决了,但是要是数据很大时估计会很影响速度. 虽然ASP中的request会自动解码经过url编码的字符串,但是Request.BinaryRead(Request.TotalBytes)取得post数据时却不会解码,所以要进行解码. 下面是我找到的一个ASP中server.urlen

  • asp中实现清除html的函数

    这个函数是必需要的,很多黑客来捣乱,黑掉数据库,会注入大量的病毒js,在存储和展示文本数据的时候,使用此函数过滤一下,可避免不少麻烦 clearhtml代码 '清除HTML代码 function clearhtml(content) content=replacehtml("&#[^>]*;","",content) content=replacehtml("</?marquee[^>]*>","&quo

  • Asp Split函数之使用多个分割符的方法

    首先,我在知道Split这个函数的作用,是把一个字符串按指定的分割符分割成一个字符串数组. ASP里有这个Split,是这样定义的dim Split(byval source as string ,byval str as string) as string()   source是源字符串,str是分隔符   我这里用了VB.net的写法,方便说明返回值的类型和参数的类型.   大家一看就明白怎么用了. 在C#里,我们是这样用的   string[] Split(string source,ch

随机推荐