我正在尝试从aspx
页面附加文本文件。我可以使用CreateTextFile
方法覆盖该文件,但没有问题,但当我尝试使用OpenTextFile
时,我得到:
描述:执行期间发生了未处理的异常 当前的网络请求。请查看堆栈跟踪了解更多信息 有关错误的信息以及它在代码中的起源。
异常详细信息:System.Runtime.InteropServices.COMException: 来自HRESULT的异常:0x800A0036(CTL_E_BADFILEMODE)
来源错误:
Line 7: fs=Server.CreateObject("Scripting.FileSystemObject")
Line 8: f=fs.OpenTextFile("E:\(username)\test.txt",1,True,0)
Line 9: f.WriteLine("testfirst")
Line 10: f.WriteLine("testsecond")
Line 11: f.close
源文件:C:\inetpub\wwwroot\asptest\write_text.aspx Line: 10
给我这个错误的代码:
<%@ Debug="true" %>
<!DOCTYPE HTML>
<html>
<body>
<%
dim fs,f
fs=Server.CreateObject("Scripting.FileSystemObject")
f=fs.OpenTextFile("E:\(username)\test.txt",1,True,0)
f.WriteLine("testfirst")
f.WriteLine("testsecond")
f.close
f=nothing
fs=nothing
%>
</body>
</html>]
有效的代码:
<%@ Debug="true" %>
<!DOCTYPE HTML>
<html>
<body>
<%
dim fs,f
fs=Server.CreateObject("Scripting.FileSystemObject")
f=fs.CreateTextFile("E:\(username)\test.txt",True)
f.WriteLine("testfirst")
f.WriteLine("testsecond")
f.close
f=nothing
fs=nothing
%>
</body>
</html>
答案 0 :(得分:1)
在第一个示例中,您只需在f = fs.OpenTextFile(“E:(username)\ test.txt”,1,True,0)中传递参数1即可以读取模式打开文件
要具有写访问权限,您必须传递参数值2以进行写入,或将8传递给附加访问
https://msdn.microsoft.com/de-de/library/314cz14s(v=vs.84).aspx
但是为什么要使用Scripting命名空间中的对象而不是System.IO中更常见和方便的类?