首页 | 站长免费中心 | 新手上路 | 网站运营 | 网页制作 | 图片设计 | 动画设计 | 网页编程 | 网页特效 | 本站专题 | 虚拟主机 | 域名注册 | 网站建设 | 程序下载
       免费空间资源 | 新闻咨询 | 免费域名 | 免费网盘 | 网站推广 | 网站策划 | 建站经验 | 网站优化 | 网页代码 | 源码下载 | 音乐小偷 | 网络赚钱 | 论坛交流
网站建设
网站建设
虚拟主机
虚拟主机
域名注册
域名注册
711网络首页
站长工具
站长工具
网站源码
网站源码
站长论坛
站长论坛

 711网络 网页编程ASP代码

如何使用FSO修改文件夹的名称

来源: 互联网    日期:2008-4-24
 
那天突然的一个灵感,是针对防盗链的
    
    正常上传的文件,若被人盗链则增加了自己服务器的负担,上次164.cc就因此被挂
    
    然后想想对策,目前各类防盗链程序也不少,不过使用也并不简单,还有就是不能免费……
    
    所以,只有自己先想办法。那么,现在看看标题,再想想防盗链,或许就有些眉目了
    
    我可以不定时的修改上传文件所在的文件夹名称,而本站程序是动态获得文件夹名称,这样原先盗用本站文件的站点会因路径的错误而找不到文件,从而也就实现了防盗链。
    
    那么,如何使用FSO修改文件夹的名称呢?
    
    一个简单的函数:    
    
<%
    Function fldrename(nowfld,newfld)
    
    nowfld=server.mappath(nowfld)
    newfld=server.mappath(newfld)
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    if not fso.FolderExists(nowfld) then
        response.write("需要修改的文件夹路径不正确或文件夹名称输入错误")
    else
        fso.CopyFolder nowfld,newfld
        fso.DeleteFolder(nowfld)
    end if
    set fso=nothing
    
    End Function
    %>

    读懂本函数内容,建议你阅读 ASP编程入门进阶(十七):FSO组件之文件夹操作
    ShowArt.asp?id=66
    
    总的来说就是拷贝当前文件夹的内容到新的文件夹中,然后再删除该文件夹内容,从而间接达到文件夹改名的目的。
    
    这是一个偏执狂问题,因为修改文件夹名称,尤其是要修改名称的该文件夹内容是G量时,这个等待的时间相对FTP远程修改名称就有点不划算了。
    
    有人说FSO可不可以直接修改文件夹名称呢?吾莫之。
    
    应用该函数
    
    <%call fldrename("ex01","ex02")%>

    基本意思即将与程序执行文件在同一目录下的 ex01 文件夹名称修改为 ex02
    
    下面是我在本地的测试情况通报:
    
    1,本程序不消耗程序执行时间
    
    2,执行1G文件夹间接改名时间需要50秒左右,其实也就是服务器端的文件复制转移时间
    
    3,CPU消耗不算太高,30%左右
    
    4,若在改名中间突然死机或掉电,则发生两种情况:
    
        a,新文件夹被建立初期(新文件夹并未建好),下次执行程序,会发生 错误类型:Microsoft VBScript 运行时错误 (0x800A003A)文件已存在,此时只能FTP删除新文件夹再执行(尝试使用FSO删除新文件夹并未凑效)。
    
        b,已经复制了部分文件,下次执行程序,自动覆盖已复制的文件夹内容,原文件夹内容依然存在。只有在复制完毕后,才会将原文件夹及其文件删除。
    
    5,同时需要注意新文件夹的名称,避免和已有文件夹名称重名,当然也可用程序判断 
    
    <%
    Function fldrename(nowfld,newfld)
    
    nowfld=server.mappath(nowfld)
    newfld=server.mappath(newfld)
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    if not fso.FolderExists(nowfld) then
        response.write("需要修改的文件夹路径不正确或文件夹名称输入错误")
    else
        if fso.FolderExists(newfld) then
            response.write("您命名的新文件夹名称已经存在")
        else
            fso.CopyFolder nowfld,newfld
            fso.DeleteFolder(nowfld)
        end if
    end if
    set fso=nothing
    
    End Function
    %> 

    6,若在修改文件夹名称的同时,文件夹内有数据库相关操作、音乐文件正在被播放,则显示为Microsoft VBScript 运行时错误 (0x800A0046)没有权限,主要即是删除原有文件夹出现的问题(音乐文件已被删除、但文件夹未能被删除)。只有FTP登录处理了。若本文件夹为全图片文件则可以运行成功。


更多的如何使用FSO修改文件夹的名称请到论坛查看: http://BBS.TC711.COM



【 双击滚屏 】 【 评论 】 【 收藏 】 【 打印 】 【 关闭 】 来源: 互联网    日期:2008-4-24   

发 表 评 论
查看评论

  您的大名:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
认证编码: 刷新验证码
点评内容: 字数0
  精品推荐  
  本月推荐  
  友情赞助  

关于我们 | 联系我们 | 广告投放 | 留言反馈 | 免费程序 | 虚拟主机 | 网站建设 |  网站推广 |  google_sitemap baidu_sitemap RSS订阅
本站所有资源均来自互联网,如有侵犯您的版权或其他问题,请通知管理员,我们会在最短的时间回复您
Copyright © 2005-2015 Tc711.Com All Rights Reserved 版权所有·711网络   蜀ICP备05021915号
110网监备案 信息产业备案 不良信息举报