在ASP.NET中使用OpenTextFile时出错

时间:2015-10-28 13:21:18

标签: asp.net

我正在尝试从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>

1 个答案:

答案 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中更常见和方便的类?