NET/קבצים

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי
< NET
תכנות בסביבת NET








לדוט נט ספריות עשירות לטיפול בקבצים, החל מטיפול בקבצים ואיתורם, ועד לטעינתם לזכרון או כתיבתם לדיסק, ועד פונקציות לטיפול בשמות קבצים או ספריות.

  • ספריית IO.File
  • ספריית FileIO.FileSystem
  • ספריית System.IO.Path

וקיצור דרך : My.Computer.FileSystem

VB[עריכה]

עבודה עם קבצים[עריכה]

מחלקת IO.File מכילה בעיקר שיטות לעבודה עם קבצים, כמו יצירה, מחיקה, העתקה והעברה:

* יצירת קובץ חדש
 IO.File.Create()

* - בדיקת קיום של קובץ  
 IO.File.Exists()

* - העתקת קובץ 
 IO.File.Copy()

* - העברת קובץ 
 IO.File.Move()

* - מחיקת קובץ 
 IO.File.Delete()

* החלפת קובץ 
 IO.File.Replace()

* הוספת טקסט לקובץ
 IO.File.AppendText()

* קביעת מאפייני קובץ
** IO.File.SetCreationTime()

** הפיכת קובץ לנסתר
 IO.File.SetAttributes("c:\text.txt", IO.FileAttributes.Hidden)

* שליפת מאפייני קובץ
 IO.File.GetAttributes("c:\text.txt")

** - שליפת זמן יצירת הקובץ
 IO.File.GetCreationTime()


עבודה עם ספריות וקבצים מתקדמים[עריכה]

מחלקת FileIO.FileSystem מכילה שיטות לעבודה עם ספריות וכן עבודה מתקדמת עם קבצים.

  • עבודה עם ספריות, כמו יצירת ספריה, העתקה, העברה וכדומה:
* נתונים על הכונן המבוקש
 Drives()

* יצירת ספריה
 CreateDirectory()

* בדיקת קיימות של ספריה
 DirectoryExists()

* העתקה של ספריה
 CopyDirectory()

* העברה של ספריה
 MoveDirectory()

* מחיקת ספריה
 DeleteDirectory()

* שינוי שם של ספריה
 RenameDirectory()

* ספריה נוכחית
 CurrentDirectory()

* מיזוג של ספריות
 CombinePath()

*שליפת רשימת ספריות
 GetDirectories()

* שם של ספריית הורה
 GetParentPath()
  • עבודה עם קבצים, כמו קבלת רשימת קבצים בספריה, יצירת קובץ זמני, עבודה עם סטרים, וקריאת ושמירת קבצים:
* שליפת נתוני קובץ
 GetFileInfo()

* קבלת רשימת קבצים
 GetFiles()

* יצירת קובץ זמני בעל שם יחודי והחזרת שמו
 GetTempFileName()

 OpenTextFieldParser()
 OpenTextFileReader()

* קריאת כל הקובץ אל מערך מספרי
 ReadAllBytes()

* קריאת כל הקובץ למחרוזת
 ReadAllText()

* כתיבת כל הקובץ ממערך מספרי
 WriteAllBytes()

* כתיבת כל הקובץ ממחרוזת
 WriteAllText()

* חיפוש תוכן בתוך קבצים (דוגמה בהמשך)
 FindInFiles()


דוגמאות[עריכה]

חיפוש קבצים בספריות[עריכה]

בכדי לקבל רשימה של כל הקבצים הנמצאים בספריה מסויימת ישנן כמה אפשרויות. האפשרות המהירה ביותר היא להשתמש בפקודת GetFiles, הנמצאת במחלקה My.Computer.FileSystem. להלן פונקציה המחזירה את כל הקבצים מסוג htm הנמצאים בספריה מסוימת ובכל תתי הספריות שמתחתיה.

Public Function MapFilesInDirectory(ByVal Dir As String) As String()
  Dim AllDiscoveredFiles() As String
  With My.Computer.FileSystem
    If dir <> "" Then
      Dim tmp As New ArrayList
      For Each FoundFile As String In .GetFiles(dir, _
                   FileIO.SearchOption.SearchAllSubDirectories, "*.htm")
        tmp.Add(FoundFile)
      Next
      ReDim AllDiscoveredFiles(tmp.Count - 1) 
      For i As Integer = 0 To tmp.Count - 1
           AllDiscoveredFiles(i) = tmp(i)
      Next
      End If
      Return AllDiscoveredFiles
   End With
End Function


טעינת קובץ טקסט למחרוזת[עריכה]

בכדי לטעון קובץ שלם מהדיסק למחרוזת יש להשתמש בפקודה הבאה:

 Dim FileContent As String = IO.File.ReadAllText("c:\test.txt")

ישנן פקודות נוספות בכדי לטעון שורה שורה, או את הקובץ בצורה של בתים למערך בתים. דרך שהיא המהירה ביותר לטעון קובץ לזכרון.


כתיבת מחרוזת לקובץ טקסט[עריכה]

בכדי לשכתב מחרוזץת על קובץ קיים יש להשתמש בפקודה הבאה:

 Dim FileContent As String ="abcd"
 IO.File.WriteAllText("c:\test.txt", FileContent)

כמו כן, ישנן אפשרויות נוספות לשמור קבצים בצורה של שורות בודדות או בצורה של בתים.


חיפוש תוכן בתוך קבצים[עריכה]

בדוט נט קיימת פקודה מיוחדת שמאפשרת לאתר קבצים שמכילים תוכן מסויים בשם FindInFiles, הפקודה מחפשת בתיקיות ומחזירה רשימה של קבצים שמכילים את התוכן המבוקש

FileIO.FileSystem.FindInFiles("C:\Documents and Settings", _ 
        "אנציקלופדיה", True, FileIO.SearchOption.SearchTopLevelOnly)