• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> WEB开发 >> ASP开发 >> FSO专题 >> 详细内容
 

推荐文章

 
 

热点文章

  • 在ASP中使用FSO组件生成HTML页面
  • FSO操作示例(给初学者)
  • 列出指定目录下的所有文件和目录
  • ASP应用:用stream读文件
  • 在线修改Serv-U 4.2用户密码
  • 用递归算法实现ASP程序用fso对硬盘上某个路径下目录和..
  • 硬盘文件搜索代码(ASP类)
  • 用asp实现的代码批量修改程序,fso相关
  • FileSystemObject(FSO) 示例代码
  • 读取目录下的所有文件(包括子目录下的所有文件)
  • 巧用FileSystem组件实现WEB应用中的本地特定打印
  • 用FSO获得图片文件的信息(大小,宽,高)
 
 

相关文章

 
 

百度搜索

 
 

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

  • 阅览次数:
  • 文章来源: http://www.cnbruce.com/blog/showlog.asp?cat_id=26&log_id=1067
  • 原文作者:
  • 整理日期: 2008-04-29
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

那天突然的一个灵感,是针对防盗链的

正常上传的文件,若被人盗链则增加了自己服务器的负担,上次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组件之文件夹操作
http://www.cnbruce.com/blog/showlog.asp?cat_id=26&log_id=439

总的来说就是拷贝当前文件夹的内容到新的文件夹中,然后再删除该文件夹内容,从而间接达到文件夹改名的目的。

这是一个偏执狂问题,因为修改文件夹名称,尤其是要修改名称的该文件夹内容是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登录处理了。若本文件夹为全图片文件则可以运行成功。

上一篇:比AcdSee功能还强大的图片处理、编辑软件,推荐下载!
下一篇:ASP上传漏洞防范
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号