.NET Framework cung cấp nhiều lớp và phương thức cho phép làm việc dễ dàng với các tập tin. Với các tập tin văn bản, lớp File chứa trong namespace System.IO được dùng phổ biến. Lớp File chứa các phương thức sau:

Phương thức Chức năng
AppendAllText Thêm một chuỗi kí tự đến một file văn bản. Nếu file văn bản này chưa tồn tại thì phải tạo ra nó đầu tiên.
Copy Sao chép một tập tin từ một vị trí đến vị trí khác.
Delete Xoá một tập tin từ nơi ổ đĩa lưu trữ.
Exists Kiểm tra một file có tồn tại hay không.
Move Di chuyển file đến vị trí khác.
ReadAllText Đọc nội dung của một tập tin văn bản.
WriteAllText Ghi nội dung đến một file mới, ghi đè lên nội dung đã có nếu file đã tồn tại.

Tạo một dự án website mới tên Web_FileManagement (chọn ngôn ngữ VB hay C#). Tạo một thư mục mới tên App_Data trong Web_FileManagement. Thêm một tập tin văn bản tên Text.txt bằng cách nhấp chuột phải vào App_Data chọn Add > Add New Item > Text File, gõ tên file là Text.txt và nhấn Add. Trong tập tin Text.txt gõ một đoạn văn bản bất kỳ, ví dụ: Xin chào các bạn:

Kiểm tra sự tồn tại của tập tin

Tạo một trang ASPX tên FileTest.aspx. Kiểm tra tập tin Text.txt có tồn tại hay không ta viết mã sau trong sự kiện Load của trang (nhấp đôi chuột để đến phương thức Page_Load):

Mã VB


Dim path As String = Server.MapPath("~/App_Data/Text.txt")

'Kiểm tra tập tin Text.txt có tồn tại hay không

Try

If File.Exists(path) = True Then

Response.Write("Tap tin ton tai!")

Else

Response.Write("Tap tin khong ton tai!")

End If

Catch ex As Exception

Response.Write("Loi: " & e.ToString())

End Try

Mã C#


string path = Server.MapPath("~/App_Data/Text.txt");

//Kiểm tra tập tin Text.txt có tồn tại hay không

try {

if (File.Exists(path) == true) {

Response.Write("Tap tin ton tai!");

} else {

Response.Write("Tap tin khong ton tai!");

}

} catch (Exception ex) {

Response.Write("Loi: " + e.ToString());

}

Tạo một thư mục cùng cấp với thư mục App_Data trong website với tên là App_File:

Di chuyển tập tin

Di chuyển tập tin Text.txt từ thư mục App_Data đến thư mục App_File và có tên mới là TextNew.txt:

Mã VB


Dim path As String = Server.MapPath("~/App_Data/Text.txt")

Dim pathnew As String = Server.MapPath("~/App_File/TextNew.txt")

Try

If File.Exists(path) = True Then

File.Move(path, pathnew)

Else

Response.Write("Tap tin khong ton tai!")

End If

Catch ex As Exception

Response.Write("Loi: " & e.ToString())

End Try

Mã C#


string path = Server.MapPath("~/App_Data/Text.txt");

string pathnew = Server.MapPath("~/App_File/TextNew.txt");

try {

if (File.Exists(path) == true) {

File.Move(path, pathnew);

} else {

Response.Write("Tap tin khong ton tai!");

}

} catch (Exception ex) {

Response.Write("Loi: " + e.ToString());

}

Mở lại Solution Explorer, nhấp chuột phải vào App_File và chọn Refresh Folder sẽ xuất hiện TextNew.txt và sẽ có nội dung như Text.txt, nếu nhấp chuột vào tập tin Text.txt trong App_Data sẽ xuất hiện thông báo không tồn tại Text.txt:

Sao chép tập tin

Sao chép nội dung tâp tin từ TextNew.txt trong App_File đến tập tin Text.txt trong App_Data:

Mã VB


Dim path As String = Server.MapPath("~/App_Data/Text.txt")

Dim pathnew As String = Server.MapPath("~/App_File/TextNew.txt")

Try

If File.Exists(pathnew) = True Then

File.Copy(pathnew, path)

Else

Response.Write("Tap tin khong ton tai!")

End If

Catch ex As Exception

Response.Write("Loi: " & e.ToString())

End Try

Mã C#


string path = Server.MapPath("~/App_Data/Text.txt");

string pathnew = Server.MapPath("~/App_File/TextNew.txt");

try {

if (File.Exists(pathnew) == true) {

File.Copy(pathnew, path);

} else {

Response.Write("Tap tin khong ton tai!");

}

} catch (Exception ex) {

Response.Write("Loi: " + e.ToString());

}

Refresh Folder hai thư mục App_Data App_File trong cửa sổ Solution Explorer sẽ xuất hiện hai tập tin Text.txt và TextNew.txt có nội dung giống nhau.

Xoá tập tin

Xoá tập tin TextNew.txt trong thư mục App_File:

Mã VB


Dim path As String = Server.MapPath("~/App_Data/Text.txt")

Dim pathnew As String = Server.MapPath("~/App_File/TextNew.txt")

Try

If File.Exists(pathnew) = True Then

File.Delete(pathnew)

Else

Response.Write("Tap tin khong ton tai!")

End If

Catch ex As Exception

Response.Write("Loi: " & e.ToString())

End Try

Mã C#


string path = Server.MapPath("~/App_Data/Text.txt");

string pathnew = Server.MapPath("~/App_File/TextNew.txt");

try {

if (File.Exists(pathnew) == true) {

File.Delete(pathnew);

} else {

Response.Write("Tap tin khong ton tai!");

}

} catch (Exception ex) {

Response.Write("Loi: " + e.ToString());

}

Refresh Folder thư mục App_File sẽ không còn tập tin TextNew.txt.

 Đọc nội dung từ một tập tin

Đọc tất cả nội dung từ tập tin Text.txt trong thư mục App_Data và hiển thị ra trang:

Mã VB


Dim path As String = Server.MapPath("~/App_Data/Text.txt")

Dim content As String

Try

If File.Exists(path) = True Then

content = File.ReadAllText(path)

Response.Write("<h1>" & content & "</h1>")

Else

Response.Write("Tap tin khong ton tai!")

End If

Catch ex As Exception

Response.Write("Loi: " & e.ToString())

End Try

Mã C#


string path = Server.MapPath("~/App_Data/Text.txt");

string pathnew = Server.MapPath("~/App_File/TextNew.txt");

string content;

try {

if (File.Exists(pathnew) == true) {

content = File.ReadAllText(path);

Response.Write("<h1>" + content + "</h1>");

} else {

Response.Write("Tap tin khong ton tai!");

}

} catch (Exception ex) {

Response.Write("Loi: " + e.ToString());

}

Kết quả:

Thêm nội dung vào một tập tin có sẵn

Thêm nội dung vào tập tin Text.txt:

Mã VB


Dim path As String = Server.MapPath("~/App_Data/Text.txt")

Dim content As String

Try

If File.Exists(path) = True Then

Dim appendText As String = "Tôi là Ngoc Minh" & Environment.NewLine

File.AppendAllText(path, appendText)

Else

Response.Write("Tap tin khong ton tai!")

End If

Catch ex As Exception

Response.Write("Loi: " & e.ToString())

End Try

Mã C#


string path = Server.MapPath("~/App_Data/Text.txt");

string content;

try {

if (File.Exists(path) == true) {

string appendText = "Tôi là Ngoc Minh" + Environment.NewLine;

File.AppendAllText(path, appendText);

}

else {

Response.Write("Tap tin khong ton tai!");

}

} catch (Exception ex) {

Response.Write("Loi: " + e.ToString());

}

Mở tập tin Text.text:

Ghi nội dung vào tập tin

Ghi nội dung vào một tập tin, nếu tập tin có sẵn thì nội dung mới sẽ được ghi đè lên nội dung cũ, nếu tập tin chưa tồn tại thì tạo tập tin:

Mã VB


Dim path As String = Server.MapPath("~/App_Data/Text.txt")

Dim pathnew As String = Server.MapPath("~/App_File/TextNew.txt")

Dim appendText As String = "Tôi là Ngoc Minh" & Environment.NewLine

Try

If File.Exists(pathnew) = True Then

File.WriteAllText(pathnew, appendText)

Else

Dim fs As FileStream = File.Create(pathnew)

fs.Close()

File.WriteAllText(pathnew, appendText)

End If

Catch ex As Exception

Response.Write("Loi: " & e.ToString())

End Try

Mã C#


string path = Server.MapPath("~/App_Data/Text.txt");

string pathnew = Server.MapPath("~/App_Data/TextNew.txt");

string appendText = "Tôi là Ngoc Minh" & Environment.NewLine;

try {

if (File.Exists(pathnew) == true) {

File.WriteAllText(pathnew, appendText);

}

else {

FileStream fs = File.Create(pathnew);

fs.Close();

File.WriteAllText(pathnew, appendText);

}

} catch (Exception ex) {

Response.Write("Loi: " + e.ToString());

}

Quản lý tập tin upload

ASP.NET hỗ trợ FileUpload control cho phép tìm kiếm và chọn tập tin để upload đến web server. Lớp FileUpload thừa kế từ lớp WebControl và có các thuộc tính chỉ đọc (read only properties) sau:

Thuộc tính Mô tả
FileBytes Trả về một mảng chứa các bytes trong tập tin được upload.
FileContent Trả về một đối tượng Stream trỏ đến tập tin được upload.
FileName Trả về tên của tập tin được upload.
HasFile Xác định liệu control có một tập tin để upload hay không
PostedFile Trả về một tham chiếu đến tập tin được upload.

Tập tin upload được đóng gói trong một đối tượng kiểu HttpPostedFile và có thể được truy cập thông qua thuộc tính PostedFile của lớp FileUpload.

Lớp HttpPostedFile có các thuộc tính được dùng thường xuyên như sau:

Thuộc tính Mô tả
ContentLength Trả về kích cỡ của tập tin được upload theo bytes.
ContentType Trả về kiểu MIME (là cơ chế nói với trình duyệt hay client  các kiểu tài liệu khác nhau được chuyển đến) của tập tin được upload.
FileName Trả về tên của tập tin được upload.
InputStream Trả về một đối tượng Stream trỏ đến tập tin được upload.

Tạo một ứng dụng đơn giản dùng FileUpload:

Mở trang Web_FileManagement.aspx ở chế độ Design. Thêm 3 control vào trang gồm 1 FileUpload, 1 Button, và 1 Label. Chuyển trang sang chế độ Source và chỉnh sửa lại nội dung cho các control như sau:

Kết quả trong chế độ Design:

Trong sự kiện Click của button Upload viết mã như sau:

Mã VB


Protected Sub btnUpload_Click(sender As Object, e As EventArgs) Handles btnUpload.Click

Dim folderPath As String = Server.MapPath("~/Files/")

'Kiểm tra thư mục File có tồn tại không

If Not Directory.Exists(folderPath) Then

'Nếu thư mục không tồn tại thì tạo nó.

Directory.CreateDirectory(folderPath)

End If

'Lưu tập tin đến thư mục

FileUpload1.SaveAs(folderPath & _

Path.GetFileName(FileUpload1.FileName))

'Hiển thị thông điệp

lblMessage.Text = Path.GetFileName(FileUpload1.FileName) + _

" đã được upload thành công!"

End Sub

Mã C#


protected void btnUpload_Click (object sender, EventArgs e)

{

string folderPath = Server.MapPath("~/Files/");

&nbsp;

//Kiểm tra thư mục File có tồn tại không

if (!Directory.Exists(folderPath))

{

//Nếu thư mục không tồn tại thì tạo nó.

Directory.CreateDirectory(folderPath);

}

'Lưu tập tin đến thư mục

FileUpload1.SaveAs(folderPath +

Path.GetFileName(FileUpload1.FileName));

//Hiển thị thông điệp

lblMessage.Text = Path.GetFileName(FileUpload1.FileName) + " đã được upload thành công!";

}

Kết quả:

Nhấn nút Choose File để chọn tập tin upload:

Chọn một tập tin bất kỳ

và nhấn nút Upload:

Kiểm tra trong cửa sổ Solution Explorer (nhớ nhấp chuột phải vào Web_FileManagement và chọn Refresh Folder):