从本地文本文件读取到C#?

时间:2013-10-28 16:52:12

标签: c# asp.net

我已经搜索过,只找到了控制台的这些信息,但我想知道是否可以将本地计算机上的文件中的文本读入代码,格式化并显示在屏幕上?我们有一个带有一些法律术语的文本文件,可以定期更新,而不是让用户筛选代码,我们只想更新文本文件并在网上进行更改。

谢谢!

编辑:感谢大家的评论,这是一个有要求的编辑。该程序位于C#ASP.NET网站。我已经阅读了许多关于在控制台中完成此操作的文章,但我不确定如何让它对我有用。再次感谢大家的贡献。

2 个答案:

答案 0 :(得分:16)

您拥有完整的程序(ASP.net)。您必须在ASP.net应用程序内的App_Data文件夹中有一个文件,在此应用程序中,您的文件名“Details.txt ”应在App_Data文件夹中可用。

您的网页中有隐藏字段和段落。当表单加载时,此时从文本文件中读取数据并填充到隐藏字段控件。并且在$(document).ready() Jquery函数中将数据填充到隐藏字段中的段落。

您的.aspx页面:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="ReadFromTextFileToTextBoxWebApp._Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
  <style type="text/css" >
   .details
   {
       background-color:Purple;color:yellow;top: 100px;
   }
   .txtDetails
   {
       left:150px;width:200px;height:100px;
   }
  </style>
  <script src="Scripts/jquery-1.8.3.min.js" type="text/javascript"></script>
  <script type="text/javascript" language="javascript">
      $(document).ready(function () {
          var data = $("#<%=HiddenField1.ClientID %>").val();
          $('#pTextData').text(data);
      });

</script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <h2>
        Welcome to ASP.NET!
    </h2>
     <div>
        <asp:HiddenField ID="HiddenField1" runat="server" />
        <p id="pTextData">
        </p>
     </div>
</asp:Content>

以下是您的代码隐藏页面:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;

namespace ReadFromTextFileToTextBoxWebApp
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var data = File.ReadAllText(Server.MapPath("~/App_Data/Details.txt"));
            HiddenField1.Value = data.ToString();   
        }           
    }
}

答案 1 :(得分:5)

以下是两种在.Net中工作的方法

var legal = File.ReadAllText(@"C:\Legal\Legalease.txt");

// Or from the CWD of where the program is executing

var legal = File.ReadAllText(Path.Combine(Environment.CurrentDirectory, "Legalease.txt"));

更新

请记住,Asp.Net是在该网站的IIS应用程序池中定义的用户运行的。如果用户对文件所在的位置没有读取权限,则无法读取该文件。确保网站应用程序池中定义的用户有权读取文件并验证文件是否已发布到读取位置。