FSO操作文件、文件夹,RS.EOF和RS.BOF等的小结

  通过数据记录集里面的文件路径信息删除所有存在的文件:

  Set RsDel=Server.CreateObject("ADODB.RecordSet")
  RsDel.open "SELECT html from Table WHERE html<>'',conn
,
1,1  '这里是只查询

  Do While NOT RsDel.EOF  '只要数据集记录不为空就不退出循环
  Fhtml=RsDel("html")
  set fso = createobject("scripting.filesystemobject")
  if  fso.FileExists(Fhtml) then '判断文件是否存在,如果存在才删除
  fso.deletefile(server.mappath(Fhtml))
  end if
  set fso = nothing
  RsDel.MoveNext  '这个是不能忘的,忘了就成死循环了
  Loop

 

  在指定路径生成文件,如果路径中文件夹不存在则先创建文件夹:

Set fso = Server.CreateObject("Scripting.FileSystemObject")
   If fso.FolderExists(server.MapPath("\" &filePath& "\" &Ftime)) then
    Set fout = fso.CreateTextFile(server.mappath("\" &filePath& "\" &Ftime & "\" & fname))
    fout.WriteLine pencat '写入文件内容
    fout.close
   else
    Set f=fso.CreateFolder(Server.MapPath("\" &filePath& "\" &Ftime)) '创建文件夹
    Set fout = fso.CreateTextFile(server.mappath("\" &filePath& "\" &Ftime & "\" & fname))  '创建文件
    fout.WriteLine pencat
    fout.close
   end if

Set fso=nothing

 

  关于EOF和BOF想说的一些话:

  BOF 说白了就是 Begin of File 指在第一个记录之前

  EOF 说白了就是 End of File 指在最后一个记录之后

  当然对于这两个还可以分别这样理解,EOF:文件的末尾BOF空的文件;EOF指针到达尾部BOF指针到达顶部.

  EOF和BOF的利用,我们通常可以:

    1.确定Recordset中是否存在记录;

    2.从一个记录MoveNext到另一个记录时是否超出 Recordset 对象的限制;

  BOF和EOF在程序中的返回值都是布尔型:

    1.当前记录位于第一个记录之前,BOF 属性将返回 True ,当前记录为第一个记录或位于其后则将返回 False ;

    2.当前记录位于 Recordset 对象的最后一个记录之后 EOF 属性将返回 True,而当前记录为 Recordset 对象的最后一个记录或位于其前,则将返回 False ;

    3.如果 BOF 或 EOF 属性为 True,则没有当前记录;

    4.如果打开没有记录的 Recordset 对象,BOF 和 EOF 属性将设置为 True,而 Recordset 对象的 RecordCount 属性设置为零。但是打开至少包含一条记录的 Recordset 对象时,第一条记录为当前记录,而 BOF 和 EOF 属性为 False;

    5.如果删除 Recordset 对象中保留的最后记录,BOF 和 EOF 属性将保持 False,直到重新安排当前记录。

  推荐两条相关的用法:

   if not (rs.bof and rs.eof) then
   如果指针位于 RecordSet 的当中(并非是最后一条和第一条)或指有记录时,那么才执行……

   if rs.bof and rs.eof then
   如果没有任何记录,那么执行……

posted @ 2008-08-05 05:11  Jun's  阅读(940)  评论(0)    收藏  举报