ASP FSO操作文件(复制文件、重命名文件、删除文件、替换字符串)
- 格式:doc
- 大小:44.00 KB
- 文档页数:12
ASP如何读写一个文本文件利用Active Server Pages脚本,你就几乎完全可以控制服务器的文件系统。
需要如下的组件:■FileSystemObject:这个对象包括了一些基本的对文件系统进行操作的方法,比如说,复制和删除文件夹或者文件■TextStream:这个对象用来读写文件■File:它的方法和属性被用来处理单独的文件。
■Folder:它的方法和属性被用来处理文件夹。
这部分介绍如何读写一个文本文件。
这对文本文件有很多用处,包括下面这些。
■一个常用的日志,利用文本文件记录访问者的活动以供日后参考。
你可以记录诸如访问者IP地址,浏览器类型等等你能得到而且想要了解的东西。
■Form中的数据,你可以将用户在Form的文本框中填写的东西记入文本文件,尽管使用数据库会更加有效。
■每日新闻,将每日的新消息记录到文本文件,然后可以在很多文件中读出来显示对文本文件的写操作要创建并且写入一个文本文件,你应当使用FileSystemObject和TextStream对象。
首先,你需要创建一个FileSystemObject对象的事例,然后,再利用CreateTextFile()以该事例创建一个T extStream 对象的事例,最后利用TextStream对象的WriteLine()方法来写入文件。
下面是这个例子:<%SetMyFileObject=Server.CreateObject(“Scripting.FileSystemObject ”)SetMyTextFi le=MyFileObject.CreateTextFile(“c://mydir//test.txt”) MyTextFile.WriteLine(“欢迎进入迈至科网络ASP教程文件操作示例!”MytextFile.Close%>这个例子创建了一个名字为test.txt的文件,该文件位于c://mydir//,WriteLine()方法被用来将那一句话写入该文件。
VBA中的文件路径与文件夹操作在进行VBA编程时,经常需要处理文件的操作,包括获取文件路径、创建文件夹、复制和移动文件等。
本文将介绍VBA中的文件路径与文件夹操作的相关知识,并提供一些实用的代码示例。
1. 获取文件路径要获取文件的路径,可以使用VBA提供的Dir和FileDialog函数。
Dir函数可以用于检索指定路径下的文件名列表,而FileDialog函数则可以打开文件对话框,让用户选择文件并返回其路径。
以下是使用Dir函数获取文件路径的示例代码:```Sub GetFilePath_Dir()Dim filePath As StringfilePath = Dir("C:\Users\Username\Documents\example.txt")If filePath <> "" ThenDebug.Print "文件路径:" & filePathElseDebug.Print "未找到文件"End IfEnd Sub```以下是使用FileDialog函数获取文件路径的示例代码:```Sub GetFilePath_FileDialog()Dim filePath As StringDim fileDialog As ObjectSet fileDialog = Application.FileDialog(msoFileDialogFilePicker) With fileDialog.AllowMultiSelect = False.Title = "选择文件"If .Show = -1 ThenfilePath = .SelectedItems(1)Debug.Print "文件路径:" & filePathElseDebug.Print "未选择文件"End IfEnd WithSet fileDialog = NothingEnd Sub```2. 创建文件夹在VBA中,要创建一个文件夹,可以使用FileSystemObject对象的CreateFolder方法。
ASP 读取文件内容
用户在对各种文件进行操作时,如果想查看某文件的内容时,可以鼠标左键双击该文件图标,打开文件并查看。
本扩展练习中,将使用File对象实现读取文本文件内容信息并显示在浏览器上的功能。
(1)创建一个命名为ReadTxt.asp的ASP页面,主要实现留言内容的添加。
左键单击【文件】|【新建】命令,弹出【新建文档】对话框,在对话框的【文件类型】中选择【ASP VbScript】,【布局】中选择【无】,单击【创建】按钮。
(2)左键单击【文件】|【保存】命令,弹出另存为对话框。
在对话框的【文件名】中输入ReadTxt.asp,【保存类型】的下拉列表框中选择“Active Server Pages(*.asp;*.asa)”,单击【保存(S)】按钮。
(3)添加ASP文件要用到的语言包和编码。
(5)执行上述代码,结果如图5-14所示。
图5-14 查看TXT文本信息。
VBA与本地文件读写的实用技巧与实例VBA(Visual Basic for Applications)是一种强大的编程语言,它可以帮助我们在Microsoft Office套件中自动执行任务和处理数据。
在本文中,我们将探讨一些VBA在读写本地文件方面的实用技巧和实例。
一、文件读取在VBA中,我们可以使用File System Object(FSO)来读取本地文件。
首先,我们需要引用Microsoft Scripting Runtime。
点击VBA编辑器中的"工具",然后选择"引用",在列表中找到"Microsoft Scripting Runtime"并勾选。
下面是一个简单的示例,展示如何使用VBA读取本地文件:```vbaSub ReadFile()Dim FSO As Scripting.FileSystemObjectDim ReadStream As Scripting.TextStreamDim FilePath As StringDim FileContent As StringSet FSO = New Scripting.FileSystemObject'指定文件路径FilePath = "C:\example.txt"'打开文件Set ReadStream = FSO.OpenTextFile(FilePath, ForReading)'读取文件内容FileContent = ReadStream.ReadAll'关闭文件ReadStream.Close'输出文件内容MsgBox FileContentEnd Sub```在这个示例中,我们首先创建了一个FileSystemObject对象,然后指定了要读取的文件路径。
接下来,使用OpenTextFile方法打开文件,并将文件内容读取到一个字符串变量中。
VBA中的文件夹操作方法与实例在VBA编程中,文件夹操作是一个常见的需求。
它可以帮助我们管理文件夹的创建、重命名、删除等操作,从而实现更高效、自动化的数据处理和文件管理。
本文将介绍VBA中常用的文件夹操作方法,并提供一些实际应用实例。
一、创建文件夹如果我们需要在VBA中创建一个新的文件夹,可以使用FileSystemObject对象的CreateFolder方法。
下面是一个创建文件夹的示例代码:```vbaSub CreateFolderExample()Dim fso As ObjectSet fso = CreateObject("Scripting.FileSystemObject")Dim folderPath As StringfolderPath = "C:\NewFolder"If Not fso.FolderExists(folderPath) Thenfso.CreateFolder folderPathMsgBox "文件夹创建成功!"ElseMsgBox "文件夹已存在!"End IfSet fso = NothingEnd Sub```在上述示例代码中,首先我们创建了一个FileSystemObject对象,并将其分配给变量fso。
然后定义了一个文件夹路径,这里我们创建了一个名为"NewFolder"的文件夹。
接下来,使用FolderExists方法判断文件夹是否已经存在,如果不存在,则使用CreateFolder方法创建文件夹,并通过消息框提示创建成功。
如果文件夹已经存在,则通过消息框提示文件夹已存在。
二、重命名文件夹在VBA中重命名文件夹同样使用FileSystemObject对象的MoveFolder方法。
下面是一个重命名文件夹的示例代码:```vbaSub RenameFolderExample()Dim fso As ObjectSet fso = CreateObject("Scripting.FileSystemObject")Dim oldFolderPath As StringDim newFolderPath As StringoldFolderPath = "C:\OldFolder"newFolderPath = "C:\NewFolder"If fso.FolderExists(oldFolderPath) Thenfso.MoveFolder oldFolderPath, newFolderPathMsgBox "文件夹重命名成功!"ElseMsgBox "文件夹不存在!"End IfSet fso = NothingEnd Sub```在上述示例代码中,我们首先创建了一个FileSystemObject对象,并将其分配给变量fso。
数据库的基本操作无非是:查询记录,写入记录,删除记录,修改记录。
一.记录的写入先建立一个表单:(把下面文章保存为5.htm)<form name="form1" method="post" action="exa5.asp">name <input type="text" name="name"><br>tel <input type="text" name="tel"><br>message <input type="text" name="message" value=""><br><input type="submit" name="Submit" value="提交"><input type="reset" name="Submit2" value="重置"></form>表单提交到exa5.asp,下面是exa5.asp的代码:(把下面代码保存为5.asp)<%set conn=server.createobject("adodb.connection")conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("data/guestboo k.mdb")name=request.form("name")tel=request.form("tel")message=request.form("message")exec="insert into guest(name,tel,message)values('"+name+"',"+tel+",'"+message+"')"conn.execute execconn.closeset conn=nothingresponse.write "记录添加成功!"%>在这里前面两句我不说了,后面三句我也不说了,前面说过exec里面的是执行的命令,添加记录的比较繁,大家要仔细看。
ASP 简介ASP 文件可包含文本、 HTML 标签和脚本。
ASP 文件中的脚本可在服务器上执行。
在学习之前,应具备的知识:在继续学习之前,您需要对以下知识有基本的了解:HTML / XHTML 脚本语言,比如 JavaScript 或者 VBScript如果希望学习上面的项目,请在我们的首页访问这些教程。
ASP 是什么?ASP 指 Active Server Pages (动态服务器页面)ASP 是运行于 IIS 之中的程序IIS 指 Internet Information Services (Internet 信息服务)IIS 是 Windows 2000 及 Windows 2003 的免费组件IIS 同时也是 Windows NT 4.0 的可选组件此可选组件可通过因特网下载PWS 的体积更小 - 不过拥有 IIS 的完整功能PWS 可在 Windows 95/98 的安装 CD 中找到ASP 兼容性ASP 是微软公司推出的一种技术运行 IIS,需要 Windows NT 4.0 或更高的版本。
运行 PWS ,需要 Windows 95 或者更高的版本。
ChiliASP 是一种在非 Windows 操作系统上运行 ASP 的技术InstantASP 是另一种在非 Windows 操作系统上运行 ASP 的技术ASP 文件是什么?ASP 文件和 HTML 文件类似ASP 文件可包含文本、HTML、XML 和脚本ASP 文件中的脚本可在服务器上执行。
ASP 文件的扩展名是 ".asp"ASP 和 HTML 有何不同?当浏览器请求某个 HTML 文件时,服务器会返回这个文件而当浏览器请求某个 ASP 文件时,IIS 将这个请求传递至 ASP 引擎。
ASP 引擎会逐行地读取这个文件,并执行文件中的脚本。
最后,ASP 文件将以纯 HTML 的形式返回到浏览器。
ASP 能为你做什么?动态地编辑、改变或者添加页面的任何内容对由用户从 HTML 表单提交的查询或者数据作出响应访问数据或者数据库,并向浏览器返回结果为不同的用户定制网页,提高这些页面的可用性用 ASP 替代 CGI 和 Perl 的优势在于它的简易性和速度由于 ASP 代码无法从来浏览器端察看,ASP 确保了站点的安全性。
在ASP中如何调用EXE可执行文件在客户端运行可以在ASP页面中添加一个超链接,指向可执行文件的路径,并设置target属性为"_blank",使得文件在新窗口中打开。
例如:```asp<a href="path_to_exe_file.exe" target="_blank">运行可执行文件</a>```这种方法比较简单,但无法直接控制可执行文件的运行参数和环境。
2.使用命令行执行可执行文件:可以使用ASP的Shell对象调用操作系统的命令行执行可执行文件。
例如,使用VBScript的Shell对象调用可执行文件并传递参数:```asp<%Set objShell = CreateObject("WScript.Shell")%>```这种方法可以方便地控制可执行文件的运行参数和环境,但需要确保服务器的安全性,避免恶意用户执行危险文件。
3. 使用ActiveX控件:可以使用ActiveX控件来实现调用可执行文件的功能。
例如,可以使用Microsoft的WScript.Shell对象创建一个ActiveX对象,并调用其Run方法执行可执行文件:```asp<script language="javascript">var shell = new ActiveXObject("WScript.Shell");shell.Run("path_to_exe_file.exe");</script>```这种方法在客户端需要启用ActiveX控件,并且可能受到浏览器的安全限制。
4. 使用JavaScript和HTML5的File API:HTML5的File API提供了一种在客户端调用本地文件的方法。
可以通过上传文件的方式将可执行文件传递到服务器,并在ASP页面中使用JavaScript调用上传的文件。
关于的详细用法type_SHFILEOPSTRUCTA = packed recordWnd: HWND;wFunc: UINT;pFrom: PAnsiChar;pTo: PAnsiChar;fFlags: FILEOP_FLAGS;fAnyOperationsAborted: BOOL;hNameMappings: Pointer;lpszProgressTitle: PAnsiChar; { only used if FOF_SIMPLEPROGRESS }end;hwnd:用来显示操作状态的对话框句柄。
例中是form1的句柄wFunc:执行的操作。
可以是以下各值:(例中是FO_COPY)FO_COPY:拷贝pfrom域中指定的(目录,例中是'c:\a')到pto中指定的位置(例中为'c:\b')FO_DELET:删除pfrom中指定的文件. (pTo不用)FO_MOVE:移动PFrom中指定的文件到pto中指定的位置。
FO_RENAME:给PFrom中指定的。
pFrom:指定一个或多个源文件名的缓冲区地址。
多个名字必须用NULL分隔。
名字列表必须用两个NULL (nil,'\0')来结束。
pTo:目标文件或目录名缓冲区地址。
如果fFlags域指定FOF_MULTIDESTFILES,缓冲区可以包含多个目标文件名。
多个名字必须用NULL分隔。
名字列表必须用两个NULL(nil,'\0')fFlags :控制操作的标志,可以是以下各值组合:FOF_ALLOWUNDO:保留Undo信息,如果pFrom没有包含全的绝对的路径或文件名此值忽略。
FOF_CONFIRMMOUSE:没有实现.FOF_FILESONLY:只有文件名使用通配符时(*.*)才对文件操作。
FOF_MULTIDESTFILES: pTo域指一定了多个目标文件.(一个对就一个源文件) 而不是指定一个目录来存放所有源文件FOF_NOCONFIRMA TION:所有显示的对话框全部选择yes to allFOF_NOCONFIRMMKDIR: 如果需要创建一个新目录不确认。
FSO的意思是FileSystemObject,即文件系统对象。
FSO对象模型包含在Scripting 类型库 (Scrrun.Dll)中,它同时包含了Drive、Folder、File、FileSystemObject和TextStream五个对象,用来操作文件和文件夹十分方便。
(请注意后面的常用函数)FSO文件(File)对象属性DateCreated 返回该文件夹的创建日期和时间DateLastAccessed 返回最后一次访问该文件的日期和时间DateLastModified 返回最后一次修改该文件的日期和时间Drive 返回该文件所在的驱动器的Drive对象Name 设定或返回文件的名字ParentFolder 返回该文件的父文件夹的Folder对象Path 返回文件的绝对路径,可使用长文件名ShortName 返回DOS风格的8.3形式的文件名ShortPath 返回DOS风格的8.3形式的文件绝对路径Size 返回该文件的大小(字节)Type 如果可能,返回一个文件类型的说明字符串FSO文件(File)对象方法FSO文件对象方法用途CopyFile 拷贝一个或者多个文件到新路径CreateTextFile 创建文件并且返回一个TextStream对象DeleteFile 删除一个文件OpenTextFile 打开文件并且返回TextStream对象,以便读取或者追加重命名文件:Function reName(sourceName,destName)dim oFso,oFileset oFso=server.createobject("Scripting.FileSystemObject")set oFile=oFso.getFile(Server.mappath(sourceName))=destNameSet oFso=NothingSet oFile=NothingEnd Function删除文件:Function FSOdel(fileName)dim fso,fset fso = server.CreateObject("scripting.filesystemobject")f=server.MapPath(fileName)if fso.FileExists(f) thenfso.DeleteFile f,trueend ifset f = nothingset fso = nothingEnd Function替换文件中的字符串:Function FSOreplace(fileName,Target,repString)Dim objFSO,objCountFile,FiletempDataSet objFSO = Server.CreateObject("Scripting.FileSystemObject")Set objCountFile = objFSO.OpenTextFile(Server.MapPath(fileName),1,True) FiletempData = objCountFile.ReadAllobjCountFile.CloseFiletempData=Replace(FiletempData,Target,repString)Set objCountFile=objFSO.CreateTextFile(Server.MapPath(fileName),True) objCountFile.Write FiletempDataobjCountFile.CloseSet objCountFile=NothingSet objFSO = NothingEnd Function<%'*******************************************************'函数名:CreateFolder(sPath)'作用: 创建目录'参数:sPath : 创建的相对目录路径'返回值:成功 true , 失败 false'*******************************************************'response.Write createfolder("/dgsunshine/UploadFile/demo1/")Function CreateFolder(sPath)On Error Resume NextDim Fso,Arrfolder,Folder,i,jIf sPath="" thenCreateFolder = FalseExit FunctionEnd IfIf Left(sPath,1) = "/" ThenFolder = "/"sPath = Mid(sPath,2,Len(sPath))ElseFolder = "./"End Ifif Right(sPath,1) = "/" then sPath = Left(sPath,Len(sPath)-1) ArrFolder = Split(sPath,"/")Set Fso = Server.CreateObject("Scripting.FileSystemObject")For i = 0 To Ubound(ArrFolder)If i = 0 thenFolder = Folder & ArrFolder(i) & "/"ElseFolder = Folder & ArrFolder(i) & "/"End IfIf Fso.folderExists(Server.MapPath(Folder)) = False then response.Write server.MapPath(folder)Fso.createFolder(Server.MapPath(Folder))End IfNextSet Fso = nothingIf Err.Number <> 0 thenErr.clear()CreateFolder = FalseElseCreateFolder = TrueEnd IfEnd functionFunction getFile(paramFilePath)Set Fso = Server.CreateObject("Scripting.FileSystemObject") Set Fso_Read =fso.OpenTextFile(Server.MapPath(paramFilePath),1,false,-2)getFile = Fso_Read.readallSet Fso_Read = NothingSet Fso = NothingEnd Function'*******************************************************'函数名:CreateFile(paramFileContent,paramFilePath)'作用: 创建文件'参数:paramFileContent '文件的内容' paramFilePath '文件名(不包括路径)'返回值:成功 true , 失败 false'*******************************************************Function CreateFile(paramFileContent,paramFilePath)On Error Resume NextDim Fso,fWriteSet Fso = Server.CreateObject("Scripting.FileSystemObject") Set fWrite =Fso.CreateTextFile(Server.Mappath(paramFilePath),true)fWrite.write paramFileContentfWrite.close()Set fWrite = nothingSet Fso = nothingIf Err.number <> 0 ThenErr.clear()CreateFile = FalseElseCreateFile = TrueEnd IfEnd Function'*******************************************************'函数名:DelFile(FilePath)'作用: 删除文件'参数:FilePath '文件路径多个文件用"|"隔开'返回值:成功 true , 失败 false'*******************************************************Function DelFile(FilePath)On Error Resume NextDim fso,arrFile,iIf GetSafeStr(FilePath,"")="" thenCreateFolder = falseExit FunctionEnd IfarrFile = Split(FilePath,"|")Set Fso = Server.CreateObject("Scripting.FileSystemObject")for i=0 to UBound(arrFile)FilePath = arrFile(i)If Fso.FileExists(Server.MapPath(FilePath)) thenFso.DeleteFile Server.MapPath(FilePath)End IfNextSet fso = nothingIf Err thenErr.clear()DelFile = falseElseDelFile = trueEnd IfEnd Function'*******************************************************'函数名:DelFolder(FolderPath)'作用: 删除目录'参数:FolderPath '目录路径 '多个目录用"|"分隔'返回值:成功 true , 失败 false'*******************************************************Function DelFolder(FolderPath)On Error Resume NextDim Fso,arrFolder,iIf GetSafeStr(FolderPath,"")="" thenDelFolder = falseExit FunctionEnd IfarrFolder = Split(FolderPath,"|")Set Fso = Server.CreateObject("Scripting.FileSystemObject")For i=0 to UBound(arrFolder)FolderPath = arrFolder(i)If Fso.folderexists(Server.MapPath(FolderPath)) thenFso.deleteFolder Server.MapPath(FolderPath)End IfNextIf Err thenErr.clear()DelFolder = false'ShowError "删除目录失败",""elseDelFolder = trueEnd IfEnd Function'*******************************************************'函数名:IsExistFile(FilePath)'作用: 判断文件或目录是否存在'参数:FilePath '文件路径多个文件用"|"隔开'返回值:成功 true , 失败 false'*******************************************************Function IsExistFile(FilePath)On Error Resume NextDim fso,arrFile,iIf GetSafeStr(FilePath,"")="" thenIsExistFile = falseEnd IfarrFile = Split(FilePath,"|")Set Fso = Server.CreateObject("Scripting.FileSystemObject")for i=0 to UBound(arrFile)FilePath = arrFile(i)If Fso.FileExists(Server.MapPath(FilePath)) thenIsExistFile = TrueEnd IfIf Fso.folderexists(Server.MapPath(FilePath)) thenIsExistFile = TrueEnd IfNextSet fso = nothingIf Err thenErr.clear()IsExistFile = false'ShowError "判断文件或目录是否存在失败",""elseIsExistFile = trueEnd IfEnd Function'*******************************************************'函数名:DelFile(FilePath)'作用: 删除文件或目录'参数:FilePath '文件路径多个文件用"|"隔开'返回值:成功 true , 失败 false'*******************************************************Function DelFile(FilePath)On Error Resume NextDim fso,arrFile,iIf GetSafeStr(FilePath,"")="" thenCreateFolder = falseEnd IfarrFile = Split(FilePath,"|")Set Fso = Server.CreateObject("Scripting.FileSystemObject")for i=0 to UBound(arrFile)FilePath = arrFile(i)If Fso.FileExists(Server.MapPath(FilePath)) thenFso.DeleteFile Server.MapPath(FilePath)End IfIf Fso.folderexists(Server.MapPath(FilePath)) thenFso.deleteFolder Server.MapPath(FilePath)End IfNextSet fso = nothingIf Err thenErr.clear()DelFile = false'ShowError "删除文件或目录失败",""elseDelFile = trueEnd IfEnd Function'******************************************************* '函数名:ReNameFile((oldName,newName)'作用: 重命名文件或目录'参数:strOldName '原文件名多个用"|"隔开' strNewName '新文件名多个用"|"隔开' 上面两个参数请保持一致'返回值:成功 true , 失败 false'******************************************************* Function ReNameFile(strOldName,strNewName)On Error Resume NextDim fso,arrOld,arrNew,i,oldName,newNameold = GetSafeStr(strOldName,"")Newfile = GetSafeStr(strNewName,"")If old ="" or Newfile = "" thenReNameFile = falseExit FunctionEnd IfarrOld = Split(strOldName,"|")arrNew = Split(strNewName,"|")If UBound(arrOld)<> UBound(arrNew) thenReNameFile = falseExit FunctionEnd IfSet Fso = Server.CreateObject("Scripting.FileSystemObject") for i=0 to UBound(arrOld)oldName = Server.MapPath(arrOld(i))newName = Server.MapPath(arrNew(i))If Fso.FileExists(oldName) and not Fso.FileExists(newName) thenfso.MoveFile oldName,newName'ReNameFile = TrueEnd IfNextSet fso = nothingIf Err.Number <> 0 ThenErr.clear()ReNameFile = falseElseReNameFile = TrueEnd IfEnd Function'*******************************************************'函数名:CopyFiles((TempSource,TempEnd)'作用: 复制文件或者目录'参数:TempSource '源文件名多个用"|"隔开' TempEnd '目的文件名多个用"|"隔开' 注意:上面两个参数请保持一致,并且都为完整路径,' 已经经过Server.MapPath方法处理过'返回值:成功 true , 失败 false'*******************************************************Function CopyFiles(TempSource,TempEnd)On Error Resume NextDim CopyFSO,arrSource,arrEndCopyFiles = falseSet CopyFSO = Server.CreateObject("Scripting.FileSystemObject")If TempSource ="" or TempEnd = "" thenErrRaise "复制文件或目录","条件为空"CopyFiles = falseExit FunctionEnd IfarrSource = Split(TempSource,"|")arrEnd = Split(TempEnd,"|")If UBound(arrSource) <> UBound(arrEnd) thenCopyFiles= falseExit FunctionEnd Iffor i=0 to UBound(arrSource)srcName = arrSource(i)tarName = arrEnd(i)IF CopyFSO.FileExists(srcName) and notCopyFSO.FileExists(tarName) thenCopyFSO.CopyFile srcName,tarNameCopyFiles = trueEnd IfIF CopyFSO.FolderExists(srcName) and notCopyFSO.FolderExists(tarName)thenCopyFSO.CopyFolder srcName,tarNameCopyFiles = trueEnd IfNextSet CopyFSO = NothingIf Err then'Err.clear()CopyFiles = false End IfEnd Function%>。