Asp.net-wp-working-with-files

提供:Dev Guides
移動先:案内検索

ASP.NET WP-ファイルの操作

この章では、Webサイトでテキストファイルを操作する方法について説明します。 Webサイトのデータを保存する簡単な方法としてテキストファイルを使用できます。

  • テキストファイルは、。txt、。xml、*。csvなどのさまざまな形式にすることができます。
  • File.WriteAllText メソッドを使用して、作成するファイルを指定し、そのファイルにデータを書き込むことができます。
  • テキストファイルとの間でデータの読み取り/書き込みおよび移動ができます。

データをファイルに書き込む

学生情報をテキストファイルに書き込む簡単な例を見てみましょう。 まず、新しいCSHTMLファイルを作成する必要があります

学生情報

名前フィールドに TextData.cshtml と入力し、[OK]をクリックして続行します。 この例では、ユーザーが名、姓、マークなどの学生情報を入力できる単純なフォームを作成します。

また、 App.Data フォルダーに Data.txt 名のテキストファイルを作成する必要があります。

TextData CSHTML

*TextData.cshtml* ファイルの次のコードを置き換えましょう。
@{
   var result = "";

   if (IsPost){
      var firstName = Request["FirstName"];
      var lastName = Request["LastName"];
      var marks = Request["Marks"];
      var userData = firstName + "," + lastName + "," + marks + Environment.NewLine;
      var dataFile = Server.MapPath("~/App_Data/Data.txt");
      File.WriteAllText(@dataFile, userData);
      result = "Information saved.";
   }
}

<!DOCTYPE html>
<html>

   <head>
      <title>Write Data to a File</title>
   </head>

   <body>
      <form id = "form1" method = "post">

         <div>
            <table>
               <tr>
                  <td>First Name:</td>
                  <td><input id = "FirstName" name = "FirstName" type = "text"/></td>
               </tr>

               <tr>
                  <td>Last Name:</td>
                  <td><input id = "LastName" name = "LastName" type = "text"/></td>
               </tr>

               <tr>
                  <td>Marks:</td>
                  <td><input id = "Marks" name = "Marks" type = "text"/></td>
               </tr>

               <tr>
                  <td></td>
                  <td><input type="submit" value="Submit"/></td>
               </tr>
            </table>

         </div>

         <div>
            @if(result != ""){
               <p>Result: @result</p>
            }
         </div>

      </form>

   </body>
</html>

このコードでは、 IsPost プロパティを使用して、ページが処理を開始する前に送信されたかどうかを判断しています。 Fileオブジェクトの* WriteAllTex * tメソッドは、ファイル名のパスとファイルに書き込む実際のデータの2つのパラメーターを取ります。

このアプリケーションを実行して、次のURLを指定します- http://localhost:36905/TextData 。次のWebページが表示されます。

データ入力

すべてのフィールドにデータを入力しましょう。

送信ボタン

次に、送信ボタンをクリックします。

保存された情報

情報が保存されていることが確認できたので、 Data.txt ファイルを開いて、データがファイルに書き込まれていることを確認します。

Data Txt

既存のファイルにデータを追加する

テキストファイルにデータを書き込むために、WriteAllTextを使用しました。 このメソッドを再度呼び出して同じファイル名で渡すと、既存のファイルが完全に上書きされます。 ただし、ほとんどの場合、ファイルの最後に新しいデータを追加することが多いため、ファイルオブジェクトの AppendAllText メソッドを使用して追加できます。

同じ例を見てみましょう。次のプログラムに示すように、* WriteAllText()*をAppendAllText()に変更するだけです。

@{
   var result = "";

   if (IsPost){
      var firstName = Request["FirstName"];
      var lastName = Request["LastName"];
      var marks = Request["Marks"];
      var userData = firstName + "," + lastName + "," + marks + Environment.NewLine;
      var dataFile = Server.MapPath("~/App_Data/Data.txt");
      File.AppendAllText(@dataFile, userData);
      result = "Information saved.";
   }
}

<!DOCTYPE html>
<html>

   <head>
      <title>Write Data to a File</title>
   </head>

   <body>
      <form id = "form1" method = "post">
         <div>

            <table>
               <tr>
                  <td>First Name:</td>
                  <td><input id = "FirstName" name = "FirstName" type = "text"/></td>
               </tr>

               <tr>
                  <td>Last Name:</td>
                  <td><input id = "LastName" name = "LastName" type = "text"/></td>
               </tr>

               <tr>
                  <td>Marks:</td>
                  <td><input id = "Marks" name = "Marks" type = "text"/></td>
               </tr>

               <tr>
                  <td></td>
                  <td><input type = "submit" value = "Submit"/></td>
               </tr>
            </table>
         </div>

         <div>
            @if(result != ""){
               <p>Result: @result</p>
            }
         </div>

      </form>

   </body>
</html>

アプリケーションを実行して、次のURL http://localhost:36905/TextData を指定すると、次のWebページが表示されます。

一部のデータ入力

データを入力して、送信ボタンをクリックします。

Data.txtファイルを開くと、このファイルの最後にデータが追加されていることがわかります。

データの追加

ファイルからデータを読み取る

ファイルからデータを読み取るには、Fileオブジェクトを使用してから* ReadAllLines()*を呼び出します。これにより、ファイルからすべての行が読み取られます。 そのために、新しいCSHTMLファイルを作成しましょう。

データの読み取り

[名前]フィールドに ReadData.cshtml と入力し、[OK]をクリックします。

次に、ReadData.cshtmlファイル内の次のコードを置き換えます。

@{
   var result = "";
   Array userData = null;
   char[] delimiterChar = {','};
   var dataFile = Server.MapPath("~/App_Data/Data.txt");

   if (File.Exists(dataFile)) {
      userData = File.ReadAllLines(dataFile);
      if (userData == null) {
        //Empty file.
         result = "The file is empty.";
      }
   } else {
     //File does not exist.
      result = "The file does not exist.";
   }
}

<!DOCTYPE html>
<html>

   <head>
      <title>Reading Data from a File</title>
   </head>

   <body>
      <div>
         <h1>Reading Data from a File</h1>
         @result

         @if (result == "") {
            <ol>
               @foreach (string dataLine in userData) {
                  <li>
                     Student
                     <ul>
                        @foreach (string dataItem in dataLine.Split(delimiterChar)) {
                           <li>@dataItem</li >
                        }
                     </ul>
                  </li>
               }
            </ol>
         }
      </div>

   </body>
</html>

アプリケーションを再度実行して、次のURL http://localhost:36905/ReadData を指定すると、次のWebページが表示されます。

データファイルの読み取り