无法在经典asp中编写文件

Bil*_*tin 3 filesystemobject asp-classic

好吧,自从我使用经典的asp之后已经有一段时间了,所以我有点生疏了.这是我的问题.

我正在尝试使用FSO将文件写入文件系统.下面的代码非常简单.但是,文件没有出现,也没有出现错误.我知道它正在运行代码,因为我可以在此片段之前和之后添加response.writes,它们都出现在输出中.但是,不会创建任何文件,也不会引发错误.我甚至改变了它,所以这是一个强制错误的虚假路径.没有骰子.我添加了所有人对目录权限的读写.还是一样.

想法?

这是我的代码:

Dim objFSO
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

'Open the text file
Dim objTextStream
Set objTextStream = objFSO.OpenTextFile("d:\test.txt", True)

'Display the contents of the text file
objTextStream.WriteLine "howdy"

'Close the file and clean up
objTextStream.Close
Set objTextStream = Nothing
Set objFSO = Nothing
Run Code Online (Sandbox Code Playgroud)

Guf*_*ffa 6

代码不会产生错误消息的唯一可能原因是您在页面中有这个:

On Error Resume Next
Run Code Online (Sandbox Code Playgroud)

这很糟糕,因为你刚刚见过.它只是默默地忽略任何错误消息,并让你不知道为什么它没有按预期工作.

(它只应用于预期出现错误的代码的隔离部分,并在每次操作后实际检查错误情况.)

从您的页面中删除它,并且您可能得到的错误消息是该行上的调用参数无效:

Set objTextStream = objFSO.OpenTextFile("d:\test.txt", True)
Run Code Online (Sandbox Code Playgroud)

您忘记了第二个参数,即I/O模式.你应该使用值1来写:

Set objTextStream = objFSO.OpenTextFile("d:\test.txt", 1, True)
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用该CreateTextFile方法:

Set objTextStream = objFSO.CreateTextFile("d:\test.txt", True)
Run Code Online (Sandbox Code Playgroud)