יצירה וקריאה של קבצים ב-asp.Net
במאמר זה נדגים יצירה וקריאה של קבצים באמצעות StreamWrite ו StreamReader
באמצעות שני אובייקטים אלו ניתן לקרוא קבצי טקסט (txt,html וכדומה) וליצור אותם
StreamWriter-יצירת קבצים
אופן שימוש
|
|
הסבר
קודם כל הגדרנו את מרחב השמות 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 אם הוא קיים כבר נרשום הודעה בהתאם אם לא ניצור אותו כמו שלמדנו עם כמה שינוים
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 ובה פשוט יצרנו את אותו הדף עוד הפעם מה שנותן לנו את האפשרות לערוך את הקובץ בכל שאנו יוצרים אותו מחדש
מקווה שנהנתם (:
תגובות בפייסבוק