וובמאסטר - תיכנות ובניית אתרים

יצירה וקריאה של קבצים ב-asp.Net

ירדן שם טוב/‏ 27 אפריל, 2004
F+
F-
במאמר זה נדגים יצירה וקריאה של קבצים באמצעות StreamWrite ו StreamReader
באמצעות שני אובייקטים אלו ניתן לקרוא קבצי טקסט (txt,html וכדומה) וליצור אותם

StreamWriter-יצירת קבצים


אופן שימוש

1
2
3
4
5
6
7
8
9
10  
<%@ Import Namespace="System.IO" %>
<script language="VB" Runat="server">
Sub page_load(Source as Object, E as EventArgs)
    Dim MyStreamWriter as StreamWriter
    MyStreamWriter = File.CreateText(Server.MapPath("textfile.txt"))
    MyStreamWriter.Write("Hello")
    MyStreamWriter.Close
    response.write("File created!")
end sub
</script>


הסבר

קודם כל הגדרנו את מרחב השמות IO שנועד לטפל בקבצים וכל מה שקשור אליהם
יצרנו streamwriter חדש בשם mystreamwriter
במאפיין הראשון שלו מגדירים את המקום ששם הוא יווצר, במאפיין השני קובעים את הטקסט שלו ולבסוף סוגרים אותו
הינה התוצאה:

בשביל לקבוע את תוכן הקובץ יש לעשות כך:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25  
<%@ Import Namespace="System.IO" %>
<script language="VB" Runat="server">
Sub createfile(Source as Object, E as EventArgs)
    dim strfiletitle as string = Server.MapPath("/txt files/") & filetitle.text & ".txt"
    if file.exists(strfiletitle) then
        response.write("File already exists")
    else
        Dim MyStreamWriter as StreamWriter
        MyStreamWriter = File.CreateText(strfiletitle)
        MyStreamWriter.Write(filecontent.text)
        MyStreamWriter.Close
        response.write("File created!")
    end if
end sub
</script>

<form runat=server>
     <asp:textbox id="filetitle" runat="server" />
     <br>
     <asp:textbox id="filecontent" runat="server" textmode="multiline" />
     <br>
     <asp:button onclick="createfile" runat="server" text="Create!" />
</form>




הסבר
מה שעשינו כאן היה מאד פשוט:
1)הגדרנו את מרחב השמות IO
2)הגדרנו מחרוזת שהיא תהיה שם הקובץ + התיקייה שלו
3)בדקנו האם הקובץ כבר קיים במשפט if אם הוא קיים כבר נרשום הודעה בהתאם אם לא ניצור אותו כמו שלמדנו עם כמה שינוים

  • שם הקובץ יהיה מה שקבענו ב בתיבת הטקסט: filetitle
  • תוכנו יהיה מה שרשמנו ב תיבת הטקסט : FileContent


    StreamReader -קריאת קבצים

    אופן כתיבה

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14  
    <%@ Import Namespace="System.IO" %>

    <script language="VB" Runat="server">
    Sub page_load(Source as Object, E as EventArgs)
        if not Page.IsPostBack then
         Dim MyStreamReader As StreamReader
         MyStreamReader = File.OpenText("MyTxtFile.txt")
         Dim filecontent as String = MyStreamReader.ReadToEnd()
         label1.text += filecontent
         MyStreamReader.Close()
        end if
    end sub
    </script>
    <asp:label id=label1 runat=server />


    הסבר
    1)רשמנו את מרחב השמות IO
    2)הגדרנו Streamreader בשם Mystreamreader
    3)הגדרנו את כתובת הקובץ כולל שמו
    4)הגדרנו מחרוזת בשם filecontent שתהיה שווה לתוכן הקובץ של MyStreamReader
    5)יצרנו label בשם label1 והגדרנו שהטקסט שלו יהיה filecontent כלומר תוכן הקובץ
    6)סגרנו את האובייקט mystreamreader

    *כדי לקרוא קבצים כגון doc יש לבצע replace ל סימני ANSI למידע עליהם לחץ כאן

    שילוב Streamreader ו streamwriter

    כאשר אנו רוצים לערוך קבצים יש להשתמש בשילוב של שני אובייקטים אלו הינה דוגמא:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28  
    <%@ Import Namespace="System.IO" %>
    <script language="VB" Runat="server">
    dim strfiletitle as string = "MyTxtFile.txt"

    Sub page_load(Source as Object, E as EventArgs)
        if not Page.IsPostBack then
         Dim MyStreamReader As StreamReader
         MyStreamReader = File.OpenText(strfiletitle)
         Dim filecontent as String = MyStreamReader.ReadToEnd()
         textbox1.text = filecontent
         MyStreamReader.Close()
        end if
    end sub

    Sub UpdateFile(obj as Object, E as EventArgs)
        Dim MyStreamWriter as StreamWriter
        MyStreamWriter = File.CreateText((strfiletitle))
        MyStreamWriter.Write(textbox1.text)
        MyStreamWriter.Close
        response.write("File updated!")
    end sub
    </script>

    <form runat=server>
         <asp:textbox id="textbox1" textmode="multiline" cols="100" rows=25 runat="server" />
         <Br>
         <asp:button onclick="UpdateFile" runat="server" text="Edit" />
    </form>


    הסבר

    1)הגדרנו את מיקום הקובץ קודם כל שמשתנה Strfiletitle
    2)בשיגרה Page_load כאשר הדף ניטען בדקנו קודם כל האם הדף נצפה בפעם הראשונה או לא, אם הוא נצפה בפעם הראשונה נקרא את הקובץ בעזרת streamreader שכבר דיברנו עליו
    3)יצרנו שיגרה בשם UpdateFile ובה פשוט יצרנו את אותו הדף עוד הפעם מה שנותן לנו את האפשרות לערוך את הקובץ בכל שאנו יוצרים אותו מחדש

    מקווה שנהנתם (:

  • תגיות: ASP.net‏  /  StreamWriter‏  /  קובץ‏  /  קריאה‏  /  כתיבה‏  

    תגובות בפייסבוק

    תגובות למאמר



    תגיות פופולאריות

    X
    הצטרף לעמוד שלנו בפייסבוק להישאר מעודכן!
    וובמאסטר © כל הזכויות שמורות