如何用asp.net创建一个新文件?

时间:2014-06-18 00:48:41

标签: asp.net vb.net

我正在尝试使用asp创建一个文件,提示用户提供文件名,然后它将运行Sub CreateFile_Click,这将创建新文件。新文件应与用户在提示中输入的名称相同。

由于某些原因我得到了

+System.IO.File.Create(filepath).Dispose()  
    {"Access to the path 'C:\futu.txt' is denied."} 
     System.UnauthorizedAccessException

<script language="VB" runat="server">
Sub CreateFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

    Dim strFileName As String = funcParam.Value
    Dim filepath as String = "C:\futu.txt"
If Not System.IO.File.Exists(filepath) Then
   System.IO.File.Create(filepath).Dispose()
End If

 'custom code to create a text file
End Sub
</script>
<html>
<head>
<script language="JavaScript">
    //ask for user input and then create file
    function CreateFile() {
        //get filename from the user
        var fileName = prompt('Type the name of the file you want to create:', '');
        //if the user clicks on OK and if they have entered something
        if ((fileName) && (fileName != "")) {
            //save the filename to the hidden form field 'funcParam'
            document.forms['myForm'].elements['funcParam'].value = fileName;
            //call the postback function with the right ID
            __doPostBack('CreateFile', '');
        }
    }
</script>
</head>

<body>
<form runat="server" id="myForm">
 <a href="javascript:CreateFile();">Create Text file</a>
 <asp:linkbutton id="CreateFile" runat="server" onclick="CreateFile_Click" />
 <input type="hidden" runat="server" id="funcParam">
</form>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

看起来运行IIS的用户的权限不允许您访问该文件。

ASP.NET Reading and Writing to the File System

此链接可帮助您解决问题。

答案 1 :(得分:0)

您无法在C:\中创建文件,因为在实际情况下,您无法访问网站文件夹中的任何位置。 如果要创建文件,则需要在Web文件夹内创建。使用Server.MapPath()将帮助您获得相对路径。

最佳做法可能是在您的网络文件夹中有一个名为LocalFile的文件夹,然后使用文件夹作为驱动器号,例如文件夹名为“C”或“D”,然后在其中创建子文件夹和文件。