asp文件操作教程

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

ASP教程-文件操作类
 
使用“二进制文件操作类编写的[文件分割]和[文件合并]代码例子:
<%
Dim obj
Set obj=New FileClass
'文件分隔
Dim i
Obj.OpenFile "G:/2.mp3",""
i=0
Do While Not Obj.Eof
   If Obj.NewFile("G:/2_"&i&".mp3",Obj.Read(2048*1024)) Then    '分隔成2M大小的文件
      Response.Write "分隔成文件G:/2_"&i&".mp3成功!<br>"
   Else
      Response.Write "分隔成文件G:/2_"&i&".mp3失败!<br>"
   End If
   i=i+1
Loop
Obj.CloseFile

'合并文件
Dim j
Obj.AppendFile "G:/2_0.mp3","G:/2_1.mp3","G:/Mp3.mp3"
For j=2 To i-1
    Obj.AppendFile "G:/Mp3.mp3","G:/2_"&j&".mp3",""
Next
Response.Write "合并文件成功!"
Set Obj=Nothing
%>

类的代码:
<%
'/*******************************二进制文件操作类************************************
'/*用法:
'/*Dim obj,sData,iPos,iSize
'/*Set obj=new FileClass
'/*obj.OpenFile "文件绝对路径地址","打开方式"       '打开文件,打开方式的值和ADODB.Stream的'/*Mode属性值相同,打开方式的相关几个值:1 = 只读  2 = 只写  3或空值 = 读写
'/*obj.AppendTo "[追加文件]绝对路径地址"           '把当前打开的文件追加到[追加文件]的末尾
'/*obj.Move 数值                                   '把当前打开的文件指针相对移动[数值]个字节
'/*obj.MoveTo 数值                        '把当前打开的文件指针绝对于文件头移动[数值]个字节
'/*sData=obj.Read(数值)
'/*'说明:obj.Read(数值)读取当前被打开的文件[数值]个字节
'/*注意:读取位置与文件指针有关,如果数值为0则从当前文件位置开始读取数据直到文件尾
'/*sData=obj.ReadAll          '读取当前打开的文件所有数据
'/*iPos=obj.Position          '返回当前文件的文件指针位置(Position属性是只读,不能写)
'/*iSize=obj.Size             '返回当前文件的大小,即字节总数
'/*If obj.Eof Then Response.Write "文件尾"         
'/*注意:obj.Eof是判断文件指针是否移动到了文件的末尾,当obj.Eof=True时
'/*     obj.Position=obj.Size。但obj.Position=obj.Size则不一定obj.Eof=True
'/*obj.SaveAs "另存为文件名","保存模式"              '将当前打开的文件另存为新文件,保存模式的值是1或2 1=非覆盖 2=覆盖
'/*obj.CloseFile                            '关闭当前打开的文件
'/*obj.NewFile "新文件名",字节数据流        '将[字节数据流]建立一个新文件,如果文件存在则将覆盖,如果非字节数据流则新建文件失败
'/*obj.AppendFile "文件1","文件2",“生成文件"
'/*'将[文件1]和[文件2]合并为一个新的[生成文件],如果[生成文件]存在,则合并失败!如果将[生成文件]置为空,则将[文件2]合并进[文件1去。
'/*Response.Write obj.GetText(字节数据流)           '将[字节数据流]转换成字符串并返回
'/*Set obj=Nothing
'/*
'/*说明:字节数据流是二进制的数据
'/*以下方法可以不需要先OpenFile:NewFile和AppendFile和GetText方法,否则其它则必需要先使用OpenFile方法打开文件
'/**********************************************************************************
Class FileClass
Private ObjStream           'ADODB.Stream对象变量
Private OpenFlag            '是否已有打开的文件
Private FileIsEof
'/**********************************************************************************
'/*         函数名:初始化类
'/**********************************************************************************
Private Sub Class_Initialize
  OpenFlag=False
  FileIsEof=True
End Sub

'/**********************************************************************************
'/*         函数名:
'/**********************************************************************************
Private Sub Class_Terminate 
  Call CloseFile
  Set ObjStream=Nothing
End Sub

'/**********************************************************************************
'/*         函数名:获取文件的大小(-1 = 没有打开的文件)
'/**********************************************************************************
Public Property Get Size
    If OpenFlag Then
       Size=ObjStream.Size
    Else
       Size=-1
    End If
End Property

'/**********************************************************************************
'/*         函数名:获取当前文件的文件指针位置(-1 = 没有打开的文件)
'/**********************************************************************************
Public Property Get Position
    If OpenFlag Then
       Position=ObjStream.Position
    Else
       Position=-1
    End If
End Property

'/**********************************************************************************
'/*         函数名:获取当前的文件是否在文件尾(True = 文件尾 False = 否)
'/*注意:返回为True时文件只是在最后一个字节处,返回为True是因为被尝试移动指针到文件的尾部(大于文件的大小)
'/*      如果外部调用此值时建议当该值为True时,停止任何的读取数据操作,否则有可能会有数据返回
'/**********************************************************************************
Public Property Get Eof
    Eof=FileIsEof
End Property
'/**********************************************************************************
'/*         函数名:打开文件
'/*参数: FileName = 要打开的文件名,绝对地址
'/*   OpenMode = 打开文件的模式 值是同Adodb.RecordSet 对象的Mode属性相同
'/**********************************************************************************
Public Function OpenFile(ByVal FileName,ByVal OpenMode)
On Error Resume Next
Dim sFileName,iMode
    If OpenFlag Then         '如果已有打开文件,则关闭前一个文件
    Call CloseFile
    End If
    sFileName=Trim(FileName)
    If sFileName="" Then
       FileIsEof=True
       OpenFlag=False
    OpenFile=False
    Exit Function
    End If
    iMode=Cint(OpenMode)     '如果输入的不是数字则采用默认的3打开模式(读写型)
    If Err.Number<>0 Then
    iMode=3
    Err.Clear
    End If
    If iMode<>0 And iMode<>1 And iMode<>2 And iMode<>3 And iMode<>4 And iMode<>8 And iMode<>12 And iMode<>16 And iMode<>4194304 Then
       iMode=3               '如果输入的数字不在ADODB.ReadStream的Mode属性所接受的值则采用默认值3
    End If
    'On Error Goto 0
    If Not InitObjStream Then           '初始化对象,如不能初始化则返回一个False值
       FileIsEof=True
       OpenFlag=False
    OpenFile=False
    Exit Function
    End If
    ObjStream.Type=1
    ObjStream.Mode=iMode
       ObjStream.Open
       ObjStream.LoadFromFile sFileName
    If Err.Number<>0 Then
    Err.Clear
       Exit Function
    End If
    FileIsEof=False
    OpenFlag=True
    OpenFile=True
End Function

'/**********************************************************************************
'/*         函数名:读取指定长度的二进制内容
'/*参数: Numbytes = 要读取的字节数(Numbytes = 0 获取当前文件指针后的所有内容)
'/*返回:读取的字节数据
'/**********************************************************************************
Public Function Read(ByVal Numbytes)
Dim iNum
    If Not OpenFlag Then Exit Function
    If Not IsInteger(Numbytes) Then Exit Function
    iNum=Clng(Numbytes)
    FileIsEof=False
    If iNum<0 Then
    Exit Function
    ElseIf (iNum+ObjStream.Position)>ObjStream.Size Then
    'iNum=ObjStream.Size-ObjStream.Position
    FileIsEof=True
    End If
    If iNum=0 Then
       Read=ObjStream.Read
    Else
       Read=ObjStream.Read(iNum)
    End If
End Function

'/**********************************************************************************
'/*         函数名:读取文件的所有内容
'/*参数:
'/*返回:读取文件的所有字节数据
'/**********************************************************************************
Public Function ReadAll
    If Not OpenFlag Then Exit Function
    ObjStream.Position=0
    ReadAll=ObjStream.Read
    FileIsEof=True
End Function

'/**********************************************************************************
'/*         函数名:文件另存为
'/*参数:FileName = 另存为文件绝对路径   Options = 文件另存为的模式 (1=非覆盖 2=覆盖)
'/*返回:读取文件的所有字节数据
'/**********************************************************************************
Public Function SaveAs(ByVal FileName,ByVal Options)
On Error Resume Next
Dim sFileName,iOption
    If Not OpenFlag Then
    SaveAs=False
       Exit Function
    End If
    sFileName=Trim(FileName)
    If sFileName="" Then
    SaveAs=False
       Exit Function
    End If
    iOption=Cint(Options)
    If Err.Number<>0 Then      '如果非数值型数据,则采用默认值 1 = 非覆盖方式保存
    iOption=1          
    Err.Clear
    End If
       If iOption<>1 And iOption<>2 Then       '如果Options的值不在1和2的范围,则采用默认值 1
       iOption=1
    End If
    ObjStream.SaveToFile sFileName,iOption
    If Err.Number<>0 Then
       Err.Clear
    SaveAs=False
       Exit Function
    End If
    SaveAs=True
End Function

'/**********************************************************************************
'/*         函数名:追加文件数据到另一个文件
'/*参数:FileName = 被追加的文件绝对路径
'/*返回:True = 追加数据成功  False = 追加文件数据失败
'/**********************************************************************************
Public Function AppendTo(ByVal FileName)
On Error Resume Next
Dim sFileName,AppendObj
    If Not OpenFlag Then
    AppendTo=False
       Exit Function
    End If
    sFileName=Trim(FileName)
    If sFileName="" Then
    AppendTo=False
       Exit Function
    End If
    '打开要被追加的文件
    Set AppendObj=Server.CreateObject("ADODB.Stream")
    AppendObj.Type=1
    AppendObj.Mode=3
       AppendObj.Open
       AppendObj.LoadFromFile sFileName
    If Err.Number<>0 Then
    Err.Clear
    AppendTo=False
    Exit Function
    End If
    AppendObj.Position=AppendObj.Size    '移动指针到文件尾
    AppendObj.Write ReadAll              '追加数据第一个文件的数据
    AppendObj.SaveToFile sFileName,2     '另存为自己
    If Err.Number<>0 Then
       Err.Clear
    AppendTo=False
       Exit Function
    End If
    AppendObj.Close
    Set AppendObj=Nothing
    AppendTo=True
End Function

'/**********************************************************************************
'/*         函数名:保存sData数据为一个文件
'/*参数:FileName = 被追加的文件绝对路径
'/*返回:True = 追加数据成功  False = 追加文件数据失败
'/**********************************************************************************
Public Function NewFile(ByVal FileName,ByRef sData)
On Error Resume Next
Dim sFileName,AppendObj
    sFileName=Trim(FileName)
    If sFileName="" Then
    NewFile=False
       Exit Function
    End If
    '打开要被追加的文件
    Set AppendObj=Server.CreateObject("ADODB.Stream")
    AppendObj.Type=1
    AppendObj.Mode=3
       AppendObj.Open
    If Err.Number<>0 Then
    Err.Clear
    NewFile=False
    Exit Function
    End If
    If Left(TypeName(sData),4)="Byte" Then     '是字节流数据才能追加
       AppendObj.Write sData                   '追加数据第一个文件的数据
    AppendObj.SaveToFile sFileName,2        '另存为自己
    Else
    NewFile=False
       Exit Function      
    End If
    If Err.Number<>0 Then
       Err.Clear
    NewFile=False
       Exit Function
    End If
    AppendObj.Close
    Set AppendObj=Nothing
    NewFile=True
End Function

'/**********************************************************************************
'/*         函数名:文件合并
'/*参数:AppendFileName = 合并文件1    SourceFileName = 合并文件2  TargetFileName = 合并后的文件(如为空,则保存为第一个文件名)
'/*返回:True = 合并成功  False = 合并失败
'/**********************************************************************************
Public Function AppendFile(ByVal AppendFileName,ByVal SourceFileName,ByVal TargetFileName)
On Error Resume Next
Dim sFileName1,sFileName2,AppendObj1,AppendObj2
Dim sTargetFile
    sFileName1=Trim(AppendFileName)
    sFileName2=Trim(SourceFileName)
    sTargetFile=Trim(TargetFileName)
    If sFileName1="" Or sFileName2="" Then
    AppendFile=False
       Exit Function
    End If
    '打开要被追加和追加的文件
    Set AppendObj1=Server.CreateObject("ADODB.Stream")
    Set AppendObj2=Server.CreateObject("ADODB.Stream")
    AppendObj1.Type=1
    AppendObj1.Mode=3
       AppendObj1.Open
       AppendObj1.LoadFromFile sFileName1
    AppendObj2.Type=1
    AppendObj2.Mode=3
       AppendObj2.Open
       AppendObj2.LoadFromFile sFileName2
    If Err.Number<>0 Then
    Err.Clear
    AppendFile=False
    Exit Function
    End If
    AppendObj1.Position=AppendObj1.Size           '移动指针到文件尾
    AppendObj1.Write AppendObj2.Read              '追加数据第一个文件的数据
    If sTargetFile="" Then
       AppendObj1.SaveToFile sFileName1,2         '另存为自己
    Else
       AppendObj1.SaveToFile sTargetFile,1        '另存为其它文件时不采用强制覆盖方式
    End If
    If Err.Number<>0 Then
       Err.Clear
    AppendFile=False
       Exit Function
    End If
    AppendObj1.Close
    Set AppendObj1=Nothing
    AppendObj2.Close
    Set AppendObj2=Nothing
    AppendFile=True
End Function

'/**********************************************************************************
'/*         函数名:移动文件指针(相对移动)
'/*参数: ToNum = 要移动的字节数
'/* 
'/**********************************************************************************
Public Sub Move(ByVal ToNum)
Dim iNum
    If Not OpenFlag Then Exit Sub
    If Not IsInteger(ToNum) Then Exit Sub
    iNum=ObjStream.Position+Clng(ToNum)
       FileIsEof=False
    If iNum<0 Then
    iNum=0
    ElseIf iNum>ObjStream.Size Then
    iNum=ObjStream.Size
    FileIsEof=True
    End If
    ObjStream.Position=iNum
End Sub

'/**********************************************************************************
'/*         函数名:移动文件指针(绝对移动)
'/*参数: ToNum = 要移动的字节数
'/* 
'/**********************************************************************************
Public Sub MoveTo(ByVal ToNum)
Dim iNum
    If Not OpenFlag Then Exit Sub
    If Not IsInteger(ToNum) Then Exit Sub
    iNum=Clng(ToNum)
    FileIsEof=False
    If iNum<0 Then
    iNum=0
    ElseIf iNum>ObjStream.Size Then
    iNum=ObjStream.Size
    FileIsEof=True
    End If
    ObjStream.Position=iNum
End Sub

'/**********************************************************************************
'/*         函数名:关闭已打开的文件
'/**********************************************************************************
Public Sub CloseFile
On Error Resume Next
  If Not IsNothing(ObjStream) Then
     ObjStream.Close
  End If
  OpenFlag=False
  FileIsEof=True
End Sub

'/**********************************************************************************
'/*         函数名:初始化ObjStream对象
'/**********************************************************************************
Private Function InitObjStream
On Error Resume Next
  If IsNothing(ObjStream) Then
     Set ObjStream=Server.CreateObject("ADODB.Stream")
     If Err.Number<>0 Then
        Err.Clear
     InitObjStream=False
     Exit Function
     End If
  End If
  InitObjStream=True
End Function

'/**********************************************************************************
'/*         函数名:获取二进制转换为字符串的数据
'/**********************************************************************************
Public Function GetText(ByRef vIn)
On Error Resume Next
Dim strReturn, i, ThisCharCode, NextCharCode
         strReturn = ""
         For i = 1 To LenB(vIn)
             ThisCharCode = AscB(MidB(vIn, i, 1))
             If ThisCharCode < &H80 Then
                strReturn = strReturn & Chr(ThisCharCode)
             Else
                NextCharCode = AscB(MidB(vIn, i + 1, 1))
                strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
                i = i + 1
            End If
         Next
         GetText = strReturn
End Function

'/**********************************************************************************
'/*         函数名:判断OBJ对象是否是空值
'/**********************************************************************************
Private Function IsNothing(Obj)
  If Not IsObject(Obj) Then
     IsNothing=True
     Exit Function
  End If 
  If Obj Is Nothing Then
     IsNothing=True
     Exit Function
  End If
  If IsNull(Obj) Then
     IsNothing=True
     Exit Function
  End If   
  IsNothing=False
End Function

'/**********************************************************************************
'/*         函数名:判断是否是数字值(0,1,2,3,4,5...........9)
'/**********************************************************************************
Private Function IsInteger(Para)
On Error Resume Next
       Dim str
       Dim l,i
       If isNUll(para) Then
          IsInteger=False
          Exit Function
       End if
       str=Cstr(para)
       If Trim(str)="" Then
          IsInteger=False
          Exit Function
       End If
       l=Len(str)
       For i=1 To l
           If Mid(str,i,1)>"9" Or Mid(str,i,1)<"0" Then
              IsInteger=False
              Exit Function
           End if
       Next
       IsInteger=true
       If Err.number<>0 Then Err.clear
End Function
End Class
%>

'-----------------------文件移动函数----
Function  FileMove(strFileSource,strFileDestination)
IF  strFileSource  =  ""  or  isnull(strFileSource)  Then
Response.Write("原文件路径不能为空!")
Response.End
End  IF
IF  strFileDestination  =  ""  or  isnull(strFileDestination)  Then
Response.Write("目的路径不能为空")
Response.End
End  IF
Set  fso  =  CreateObject("Scripting.FileSystemObject")
If  fso.FileExists(strFileSource)  Then
fso.MoveFile  strFileSource,  strFileDestination
FileMove="Y"
Else
Response.Write("该文件不存在!")
Response.End
End  If
Set  fso  =  Nothing
End  Function
问题二:用Replace函数替换
str="/doc/filepath/"
new_str=Replace(str,"filepath","替换成另外的字符")


ASP文件操作函数详解

文件操作函数中,可分为三种类型,就是:1、文件名函数,2、文件管理函数;3、文件I/O函数。

1、文件名函数
  文件名函数可以对文件的名称、所在子目录、驱动器和扩展名等进行操作。下表列出这些函数及其功能。
函数 说明
ExpandFileName() 返回文件的全路径(含驱动器、路径)
ExtractFileExt() 从文件名中抽取扩展名
ExtractFileName() 从文件名中抽取不含路径的文件名
ExtractFilePath() 从文件名中抽取路径名
ExtractFileDir() 从文件名中抽取目录名
ExtractFileDrive() 从文件名中抽取驱动器名
ChangeFileExt() 改变文件的扩展名
ExpandUNCFileName() 返回含有网络驱动器的文件全路径
ExtractRelativePath() 从文件名中抽取相对路径信息
ExtractShortPathName() 把文件名转化为DOS的8·3格式
MatchesMask() 检查文件是否与指定的文件名格式匹配

  下面就把这些函数作一一介绍:

  ⑴ExpandFileName()
  原型:extern PACKAGE AnsiString __fastcall ExpandFileName(const AnsiString FileName);
  功能:返回文件的全路径(含驱动器、路径)
  参数:FileName:要处理的文件名
  例:ShowMessage(ExpandFileName(Application->ExeName));//显示你的程序文件名,如C:/MyBCB/Sample1.EXE

  ⑵ExtractFileExt()
  原型:extern PACKAGE AnsiString __fastcall ExtractFileExt(const AnsiString FileName);
  功能:从文件名中抽取扩展名
  参数:FileName:要处理的文件名(全路径)
  例:ShowMessage(ExtractFileExt(Application->ExeName));//显示".exe"

  ⑶ExtractFileName()
  原型:extern PACKAGE AnsiString __fastcall ExtractFileName(const AnsiString FileName);
  功能:从文件名中抽取不含路径的文件名
  参数:FileName:要处理的文件名
  例:ShowMessage(ExtractFileExt("c://Winnt//SOL.EXE"));//显示"SOL.EXE"

  ⑷ExtractFilePath()
  原型:extern PACKAGE AnsiString __fastcall ExtractFilePath(const AnsiString FileName);
  功能:从文件名中抽取路径名
  参数:FileName:要处理的文件名
  例:ShowMessage(ExtractFilePath("Winnt//SOL.EXE"));//显示"Winnt/"

  ⑸ExtractFileDir()
  原型:extern PACKAGE AnsiString __fastcall ExtractFileDir(const AnsiString FileName);
  功能:从文件名中抽取目录名(和上个函数不同,不包括最后的"/")
  参数:FileName:要处理的文件名
  例:ShowMessage(ExtractFileDir("Winnt//SOL.EXE"));//显示"Winnt",注意和上个函数的区别

  ⑹ExtractFileDrive()
  原型:extern PACKAGE AnsiString __fastcall ExtractFileDrive(const AnsiString FileName);
  功能:从文件名中抽取驱动器名
  参数:FileName:要处理的文件名
  例:ShowMessage(ExtractFileDrive("c://Winnt//SOL.EXE"));//显示"c:"

  ⑺ChangeFileExt()
  原型:extern PACKAGE System::AnsiString __fastcall ChangeFileExt(const System::AnsiString FileName, const System::AnsiString Extension);
  功能:更改文件名的扩展名,不是对真正的文件进行改名,只是对文件名这个字符串进行处理
  参数:FileName:要改名的文件名,Extension:新的扩展名
  例:ShowMessage(ChangeFileExt("c://Winnt//SOL.EXE",".OOO"));//显示"c:/winnt/SOL.OOO"

  ⑻ExpandUNCFileName()
  原型:extern PACKAGE AnsiString __fastcall ExpandUNCFileName(const AnsiString FileName);
  功能:返回含有网络驱动器的文件全路径,格式为://机器名/共享名/文件名
  参数:FileName:要处理的文件名
  例:ShowMessage(ExpandUNCFileName("F://Winnt//SOL.EXE"));/*如果F:是映射的网络驱动器//NT40/WINNT,则显示"//NT40/WINNT/SOL.EXE"*/

  ⑼ExtractRelativePath()
  原型:extern PACKAGE AnsiString __fastcall ExtractRelativePath(const AnsiString BaseName, const AnsiString DestName);
  功能:从文件名中抽取相对路径信息,如"../sss/ss.asd"这种形式
  参数:BaseName:基准文件名;DestName:目标文件名
  例:ShowMessage(ExtractRelativePath("D://Source//c//1.123","D://Source//Asm//dz.asm"));/*显示"../asm/dz.asm"*/

  ⑽ExtractShortPathName()
  原型:extern PACKAGE AnsiString __fastcall ExtractShortPathName(const AnsiString FileName);
  功能:把文件名转换为DOS的8、3格式
  参数:FileName:要处理的文件名
  例:ShowMessage(ExtractShortPathName("E://Program Files//Dual Wheel Mouse//4dmain.exe"));/*显示"E:/Progra~1/dualwh~1/4dmain.exe"*/

  ⑾MatchesMask()
  原型:extern PACKAGE bool __fastcall MatchesMask(const AnsiString Filename, const AnsiString Mask);
  功能:检查文件是否与指定的文件名格式匹配
  参数:FileName:要处理的文件名;Mask:文件名格式,支持通配符
  例:ShowMessage(MatchesMask("Lxf.exe","*.?x?));//显示"true"

2、文件管理函数
  这类函数包括设置和读取驱动器、子目录和文件的有关的各种操作,下表列出这类操作常用的函数及其功能。
函数 功能
CreateDir() 创建新的子目录
DeleteFile() 删除文件
DirectoryExists() 判断目录是否存在
DiskFree() 获取磁盘剩余空间
DiskSize() 获取磁盘容量
FileExists() 判断文件是否存在
FileGetAttr() 获取文件属性
FileGetDate() 获取文件日期
GetCurrentDir() 获取当前目录
RemoveDir() 删除目录
SetCurrentDir() 设置当前目录

  下面就把这些函数作一一介绍:

  ⑴CreateDir()
  原型:extern PACKAGE bool __fastcall CreateDir(const System::AnsiString Dir);
  功能:建立子目录,如果成功返回true,否则返回false
  参数:Dir:要建立的子目录的名字
  例:Create("ASM");//在当前目录下建立一个名为ASM的子目录

  ⑵DeleteFile()
  原型:extern PACKAGE bool __fastcall DeleteFile(const System::AnsiString FileName);
  功能:删除文件,如果成功返回true,否则返回false
  参数:FileName:要删除的文件名
  例:if(OpenDialog1->Execute())DeleteFile(OpenDialog1->FileName);

  ⑶DirectoryExists()
  原型:extern PACKAGE bool __fastcall DirectoryExists(const System:: AnsiString Name);
  功能:检测目录是否存在,如果存在返回true,否则返回false
  参数:Name:要检测的目录名
  例:if(!DirectoryExists("ASM"))CreateDir("ASM");//如果ASM这个目录不存在则创建之

  ⑷DiskFree()
  原型:extern PACKAGE __int64 __fastcall DiskFree(Byte Drive);
  功能:检测磁盘剩余空间,返回值以字节为单位,如果指定的磁盘无效,返回-1
  参数:Drive:磁盘的代号,0表示当前盘, 1=A,2=B,3=C 以此类推
  例:ShowMessage(DiskFree(0));//显示当前盘的剩余空间

  ⑸DiskSize()
  原型:extern PACKAGE __int64 __fastcall DiskSize(Byte Drive);
  功能:检测磁盘容量,返回值以字节为单位,如果指定的磁盘无效,返回-1
  参数:Drive:磁盘的代号,0表示当前盘, 1=A,2=B,3=C 以此类推
  例:ShowMessage(DiskFree(0));//显示当前盘的容量

  ⑹FileExists()
  原型:extern PACKAGE bool __fastcall FileExists(const AnsiString FileName);
  功能:检测文件是否存在,如果存在返回true,否则返回false
  参数:FileName:要检测的文件名
  例:if(FileExists("AAA.ASM"))DeleteFile("AAA.ASM");

  ⑺FileGetAttr()
  原型:extern PACKAGE int __fastcall FileGetAttr(const AnsiString FileName);
  功能:取得文件属性,如果出错返回-1
  返回值如下表,如果返回$00000006表示是一个具有隐含和系统属性的文件(4+2)
常量 值 含义
faReadOnly $00000001 只读文件
faHidden $00000002 隐含文件
faSysFile $00000004 系统文件
faVolumeID $00000008 卷标
faDirectory $00000010 目录
faArchive $00000020 归档文件

  例:if(FileGetAttr("LLL.TXT")&0x2)ShowMessage("这是一个有隐含属性的文件");
  与此对应的有FileSetAttr() ,请自已查阅帮助系统

  ⑻FileGetDate()
  原型:extern PACKAGE int __fastcall FileGetDate(int Handle);
  功能:返回文件的建立时间到1970-1-1日0时的秒数
  参数:Handle:用FileOpen()打开的文件句柄。
  例:
    int i=FileOpen("C://autoexec.bat",fmOpenRead);
    ShowMessage(FileGetDate(i));
    FileClose(i);
  与此对应的有FileSetDate(),请自已查阅帮助系统

  ⑼GetCurrentDir()
  原型:extern PACKAGE AnsiString __fastcall GetCurrentDir();
  功能:取得当前的目录名
  例:ShowMessage(GetCurrentDir());

  ⑽RemoveDir()
  原型:extern PACKAGE bool __fastcall RemoveDir(const AnsiString Dir);
  功能:删除目录,如果成功返回true,否则返回false
  参数:Dir:要删除的目录名
  例:if(DiectoryExists("ASM"))RemoveDir("ASM");

  ⑾SetCurrentDir()
  原型:extern PACKAGE bool __fastcall SetCurrentDir(const AnsiString Dir);
  功能:设置当前目录,如果成功返回true,否则返回false
  参数:Dir:要切换到的目录名
  例:SetCurrentDir("C://WINDOWS");

3、文件I/O函数
  这类函数完成对文件的读写相关的操作,这种类型的操作和C的基于I/O文件操作类似,下表列出这类操作常用的函数及其功能。
FileOpen() 打开文件
FileClose() 关闭文件
FileRead() 读文件
FileSeek() 文件定位
FileWrite() 写文件
FileCreate() 创建文件

  下面就对这些函数作详细介绍。

  ⑴FileOpen()
  原型:extern PACKAGE int __fastcall FileOpen(const AnsiString FileName, int Mode);
  功能:打开文件,如果成功返回其句柄,否则返回-1
  参数:FileName:要打开的文件名;Mode:打开的方式,取值如下表,可用"或"("|")运算符连接。
常量 值 说明
-------------------------------------------------------------
fmOpenRead 0 以只读属性打开
fmOpenWrite 1 以只写属性打开
fmOpenReadWrite 2 以读/写属性打开
fmShareCompat 0 兼容FCB方式(汇编中有相应的DOS功能调用,感兴趣自已查阅相关资料)
fmShareExclusive 16 共享方式:以独占方式打开,在关闭以前,别人不能访问
fmShareDenyWrite 32 共享方式:拒绝写访问
fmShareDenyRead 48 共享方式:拒绝读访问
fmShareDenyNone 64 共享方式:无限制,允许读写

  例:int i=FileOpen("C://WINDOWS//Win.ini",fmOpenReadWrite|fmShareExclusive);

  ⑵FileClose()
  原型:extern PACKAGE void __fastcall FileClose(int Handle);
  功能:关闭打开的句柄。
  参数:Handle:要关闭的句柄
  例:FileClose(i);

  ⑶FileRead()
  原型:extern PACKAGE int __fastcall FileRead(int Handle, void *Buffer, int Count);
  功能:读文件,返回实际读取的字节数,句柄必须首先由FileOpen或FileCreate创建。
  参数:Handle:要读取的句柄;Buffer:存放读取的数据的缓冲区;Count:想读取的字节数
  例:char str[400];FileRead(hnd1,str,400);

  ⑷FileSeek()
  原型:extern PACKAGE int __fastcall FileSeek(int Handle, int Offset, int Origin);
  功能:移动文件读取指针,成功返回文件指针的位置,失败返回-1
  参数:Handle:相关联的句柄;Offset:移动的量;Orgin:移动的基准,0=文件头,1=当前位置,2=文件尾。
  例:ShowMessage(FileSeek(hnd1,0,2));//取得文件的长度

  ⑸FileWrite()
  原型:extern PACKAGE int __fastcall FileWrite(int Handle, const void *Buffer, int Count);
  功能:写文件,返回实际写入的字节数,句柄必须首先由FileOpen或FileCreate创建。
  参数:Handle:要写入的句柄;Buffer:存放写入数据的缓冲区;Count:想写入的字节数
  例:char str[]="I Love You";FileWrite(hnd1,str,strlen(str));

  ⑹FileCreate()
  原型:extern PACKAGE int __fastcall FileCreate(const AnsiString FileName);
  功能:创建文件。成功返回其句柄,否则返回-1
  参数:FileName:要创建的文件名
  例:if(!FileExists("KC.C"))hnd1=FileCreate("KC.C");

ASP.NET Core 文件中间件 MinIO 详细使用教程 MinIO 的安装和配置 创建文件存储服务接口和实现 创建控制器处理文件上传、下载和删除 实现高级功能如进度跟踪、元数据管理和版本控制 安全性考虑和性能优化 错误处理和日志记录 阅读详情

相关推荐

ASP项目开发全程实录视频4:深入学习与实践

ASP(Active Server Pages)是微软推出的一种服务器端脚本环境,允许开发者插入服务器端脚本到HTML页面中,用于创建动态网页内容。自20世纪90年代末引入以来,ASP已经成为构建动态网站和Web应用程序的流行技术之一。它支持VBScript和JScript语言,能够和服务器端组件如ActiveX数据对象(ADO)进行交互,实现与数据库的连接和数据处理。安装成功后,我们就可以访问IIS管理界面,进行进一步的配置工作了。IIS提供了丰富的功能,包括但不限于:网站管理。

weixin_30661119的博客 1035

vb adodb.stream 详解

vb adodb stream aeecss adodb resouse recordset

C#基础至高级教程简体中文PDF完整版

C#(读作“C Sharp”)是微软开发的一种现代、面向对象、类型安全的编程语言。它是为了.NET框架而设计的,旨在提供一种简洁、优雅的方式来开发应用程序。C#在语言设计上受到了C++和Java等语言的影响,并且在功能和特性上不断创新,使其成为开发Windows应用程序、Web服务和Web应用程序的首选语言之一。C#强调类型安全,这意味着它在编译时会检查数据类型,从而减少运行时错误。它支持多种编程范式,包括命令式、声明式、泛型、函数式、反射、元编程和异步编程。

weixin_33506815的博客 1031

艾恩ASP_文件上传组件anupload

艾恩ASP无组件上传组件,不敢夸口说多完美,但能实现基本的功能.包括提取表单数据、上传到不同文件夹、保存 到数据库(上传和保存表单可同时进行)、限制上传扩展名、限制上传大小、选择文件保存类型(原文件名和时间随机命名) 等! 本组件可以完整保存用户信息,包括同名称表单(和request.form一样以,为分割符进行保存),以及文件域的客户端路 径。处理完数据后,程序会提供两个方法-----files和forms,通过这两个方法实现文件的保存以及信息的读取,并且可以调 用fileaction类的GetBytes方法获取文件的二进制数据,可以把此数据保存到数据库(作者不推荐把二进制保存到数据库, 会影响数据库性能)。 此组件最大的优点更多表现在多文件上传,即可以使用循环把所有文件保存到同一目录,又可以单独操作保存到不同 目录,灵活性相当高,完全脱离其他任何对象的束缚。并且可以自主选择保存方式--以原文件名保存或以程序自动生成的 文件名(时间+随机数字)保存 ,同时组件开放进度条功能的接口

server.CreateObject("ADODB.Stream") 方法说明

 一、server.CreateObject("ADODB.Stream")      set Data_5xsoft = Server.CreateObject("adodb.stream"),读二进制文件,可以运用到读取图片文件的的高度宽度、可以读取文本文件、可以下载服务器文件等。            组件为"Adodb.Stream" ,有下

8759

关于Adodb.Stream 的使用说明

组件:"Adodb.Stream" 有下列方法: Cancel 方法 使用方法如下 Object.Cancel 说明:取消执行挂起的异步 Execute 或 Open 方法的调用。 Close 方法 使用方法如下 Object.Close :关闭对像 CopyTo 方法 使用方法如下 Object.CopyTo(destStream,[CharNumber]) 说明:将对像的数据复制,destSt

totem's 792

asp---CreateObject("adodb.stream")文件写入utf-8格式

用CreateObject("Scripting.FileSystemObject")写入utf-8的文件会出现乱码问题 可以使用CreateObject("adodb.stream")写入,设置编码为utf-8即可 function writeToFile(charset,content,filepath) set stm=server.CreateObject("adodb.str

lc448986375的专栏 4087

VBA学习(2) Createobject使用

在VBA中 Createobject函数可以创建并返回一个对ActiveX对象的引用 要创建 ActiveX 对象,只需将 CreateObject 返回的对象赋给一个变量 '声明一个对象变量来存放该对象的引用。Dim 变量 as Object采用后期绑定方式 例如: Dim ExcelSheet As ObjectSet ExcelSheet = CreateObject("Excel.Sheet") 还可以创建如下对象: creatobject("adodb.recordset") 数据库记录操作.

u011269801的专栏 1万+

asp.net编成资料

DOTNET编成资料 第1页 第2页 第3页 第4页 ado.net快速起步-(2013/11/20) ado.net:通向未来之桥-(2013/11/20) 亲密接触asp.net-(2013/11/20) 亲密接触asp.net-(2013/11/20) 亲密接触asp.net-(2013/11/20) 亲密接触asp.net-(2013/11/

q1q2q3q4ln的专栏-随我一起研究程序 841

Excel_VBA教程:开启Excel自动化编程之旅

Excel_VBA教程:开启Excel自动化编程之旅 【下载地址】Excel_VBA教程教程是Excel VBA编程的全面指南,从基础到高级,帮助用户轻松掌握VBA语言核心技能。内容涵盖标识符、运算符、数据类型、变量常量、数组、循环语句等基础知识,同时深入探讨文件操作、控件使用、定时器设置等高级技巧。通过学习,您将能...

gitblog_06765的博客 761

C#使用教程

C#是强类型语言,变量需声明类型。基础结构包含命名空间、类、方法。方法用于封装可重用代码。参数可传递值或引用(C#支持面向对象特性,如封装、继承、多态。C#是一种面向对象的编程语言,需在。条件语句和循环用于控制程序逻辑。捕获和处理运行时错误。

woflvv的博客 387

只找我用到的。谢谢。

从今天开始,找我所需要的.net文章,并且记录。 2007年11月3日 15:36:51 ASP.NET AJAX入门系列(1):概述 2007年11月3日 16:54:10 .net/vs2005/c# 创建windows service/windows服务 2007年11月3日 16:25:17 用C#实现对目录,文件的各种操作 2007年11月3日...

weixin_30849403的博客 93

构建C# Web应用程序的文件管理系统

随着企业信息化建设的不断推进,Web文件管理系统成为了企业文件共享、分发和管理的重要工具。C#作为一种功能强大的编程语言,与ASP.NET框架结合,为开发者提供了一个高效、安全的方式来构建网络文件管理解决方案。在这一章节中,我们将首先探讨Web文件管理的基本概念,包括它在企业应用中的作用以及面临的挑战。我们将从文件管理的历史演进讲起,浅入深地分析当前Web文件管理的核心需求,如安全性、用户权限控制、性能优化等,并简要概述如何通过C#技术栈实现这些需求。这将为后续章节深入探讨具体技术细节和实操策略打下基础。

weixin_42168902的博客 966

2004-07-29工作量统计完成

2004-07-29---------------------------------------------------------------------------------------------------------------------------------------09:10坐下来,在公交上睡了一会儿,现在精神尚可。我准备一会把网络连接给断掉,这是下策,不过也没办法。王过来

568

asp.net文件操作小例子(创建文件夹,读,写,删)

asp.net文件操作小例子(创建文件夹,读,写,删)   静态生成要在虚拟目录下创建文件夹 来保存生成的页面 那么就要对文件进行操作 一、创建文件夹         using System.IO;         string name = "aa";         string path = Server.MapPath("") + "\\" + na

Stay Hungry Stay Foolish 786

php 网页文件上传教程,php 文件上传入门教程

php在文件上传方面比起asp来说方便了很多,记得用asp文件上传时那麻烦了,现在我们下看看php 文件上传入门教程吧。一.表单提交:接收普通表单信息的数组有: $_GET $_POST $_REQUEST接收文件上传信息的函数有: $_FILES同时做多个上传文件的表单的时候,表单不能同名.如果要做文件上传表单必须要改加的:1.method="post"2.enctype="mult...

weixin_39920415的博客 133

ASP.NET & Excel

ASP.NET & Excel http://birdshome.cnblogs.com/favorite/1666.html posted on 2006-08-04 15:47 Steveson 阅读(...) 评论(...) 编辑 收藏 var al...

weixin_30687587的博客 67

如何使用,ASP.Net,将Word,转换为,HTML文件,教程实例

如何使用,ASP.Net,将Word,转换为,HTML文件,教程实例 利用Word.Application提供的方法,可以很轻易地将Word文档转化为HTML等其它格式,下面就是实现的全部的代码: Visual C# WordToHtml.aspx &lt;%@ Page language="c#" Codebehind="WordToHtml.aspx.cs" AutoEven...

jinvasshole 235
上一篇: 遇到的linux问题汇集
下一篇: 关于unicode不能不知道的知识
boabc2304
博客等级 码龄22年 62粉丝 37原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值