Trở về
Tham gia nhóm m Autoit đ đưc hưng dn và gii đáp trc tiếp : http://fb.com/groups/autoitscript
Tin tức công nghệ  -  Thủ thuật lập trình

Monday, June 16, 2014

C# căn bản - Làm việc với tập tin (Files)


Toàn màn hìnhIn bài viết

Đầu tiên bạn nhớ khai báo thêm :

using System.IO;

namespace System.IO là vùng của các thư viện lớp dành cho những dịch vụ liên quan đến xuất nhập dữ liệu dựa trên tập tin.

Bạn cần tạo 1 file mới , di chuyển hoặc xóa một file hiện có .
Việc này có hai lớp thực hiện là File và Fileinfo.

 File và Directory : chỉ chứa các phương thức tĩnh (static) chúng chứa tất cả những phương thức để thao tác với file và thư mục

 Fileinfo và Directoryinfo : chứa các phương thức thể hiện (instance) , chúng chỉ thao tác trên 1 đối tượng cụ thể .

Phương thức thể hiện create của lớp File

if (!File.Exists(@"C:\tam.txt"))
{
Console.Write("file chua ton tai");
File.Create(@"C:\tam.txt");
}
else
Console.Write("trung file");

Kí hiệu @ trong khai báo chuỗi path phía trên là giúp C# hiểu kí tư ‘/’ là một kí hiệu của đường dẫn.
 Phương thức thể hiện create của lớp Fileinfo

Để sử dụng các phương thức cũng như thuộc tính của lớp FileInfo bạn cần khởi tạo đối tượng FileInfo cho nó.

FileInfo <Tên biến> = new FileInfo (string <Đường dẫn>);
FileInfo file = new FileInfo(@"C:\tam.txt");
if (!file.Exists)
{
file.Create();
}
else
Console.WriteLine("da ton tai");

Sao chép 1 File
Dùng phương thức tĩnh File.Copy.

File.Copy(@"C:\tam.txt", @"C:\ta.txt", true);

+ Phương thức thể hiển Copyto.

FileInfo file = new FileInfo(@"C:\tam.txt");
file.CopyTo(@"C:\tamm.txt",true);

+ Di chuyển 1 File
Dùng phương thức tĩnh Move của lớp File.

File.Move(@"C:\tam.txt", @"D:\tam.txt");

+ Dùng phương thức thể hiện MoveTo của lớp Fileinfo

FileInfo File = new FileInfo(@"C:\tam.txt");
File.MoveTo(@"D:\tam.txt");

Nếu bạn đang cần 1 cách tạo nhanh chóng hoặc di chuyển , sao chép file… thì nên sử dụng phương thức tĩnh . Nếu bạn đang thực hiện nhiều thao tác trên 1 file,

ví dụ :
bạn tạo lập sau đó di chuyển . thì hãy dùng Fileinfo.

Một vài lưu ý :
+ Nếu thư mục hoặc tập tin không tồn tại sẽ xảy ra lỗi ngoại lệ.
+ Nếu không có đường dẫn nào được cung cấp,File sẽ nằm tại thư mục đang làm việc hiện hành.Nếu user không có quyền ghi vào thư mục đang làm việc (chẳng hạn thư mục Program Files ), sẽ xảy ra lỗi ngoại lệ


 Thao tác với các thuộc tính File

Để hiện thị các timestamp của một file,bạn có thể sử dụng hoặc là các phương thức tĩnh của lớp File , hoặc là các phương thức tĩnh của lớp Fileinfo.

Ví dụ về phương thức tĩnh File.

Console.WriteLine(File.GetCreationTime(@"C:\tam.txt"));
// GetCreationTime ngày và giờ tạo thư mục
Console.WriteLine(File.GetLastAccessTime(@"C:\tam.txt"));
// GetLastAccessTime thời gian truy xuất cuối của tập tin
Console.WriteLine(File.GetLastWriteTime(@"C:\tam.txt"));
// GetLastWriteTime thời gian ghi lần cuối của tập tin
Ví dụ phương thức thể hiện Fileinfo
FileInfo file = new FileInfo(@"C:\tam.txt");
Console.WriteLine(file.CreationTime);
// CreationTime ngày và giờ tạo thư mục
Console.WriteLine(file.LastAccessTime);
// LastAccessTime thời gian truy xuất cuối của tập tin
Console.WriteLine(file. LastWriteTime);
// LastWriteTime thời gian ghi lần cuối của tập tin

Chỉnh sửa các timestamp của 1 file , bạn có thể sử dụng hoặc là các phương thức tĩnh của lớp File , hoặc là các phương thức tĩnh của lớp Fileinfo.

Ví dụ về phương thức tĩnh File.

File.SetCreationTime(@"C:\tam.txt", DateTime.Parse(@"6,9,2014"));
// SetCreationTime chỉnh sửa ngày và giờ tạo thư mục
Các phương thức thể hiện cũng tương tự để chỉnh sửa thông tin 1 file.
FileInfo file = new FileInfo(@"C:\tam.txt");
DateTime dt = new DateTime(2014,6,13);
file.CreationTime = dt;
Hiện thị các thuộc của 1 file
FileInfo file = new FileInfo(@"C:\tam.txt");
Console.WriteLine(file.Attributes);


 Lựa chọn phương thức mở một File hay Stream để đọc/ghi

Đọc và viết vào files nói chung rất đơn giản; tuy nhiên , Điều này không phải bắt buộc biết các đối tượng File hoặc FileInfo. Thay vào đó chúng ta phải biết một số lớp trình bày nội dung chung gọi là stream.

Sử dụng các luồng(stream) file để thực hiện nhiều chức năng xử lý file khác nhau.Có 5 kiểu cơ bản về các thao tác luồng file dựng sẵn để các bạn sử dụng
+ FileStream

FileStream được sử dụng đọc và viết dữ liệu vào hoặc từ một file. Để khởi tạo một FileStream, bạn cần 4 phần sau:

file bạn muốn truy xuất .
Mode cho biết bạn muốn mở file như thế nào.
Access cho biết bạn muốn truy xuất file như thế nào – bạn định đọc hoặc viết file
share access khả năng truy xuất file.

FileMode Append, Create, CreateNew, Open, OpenOrCreate, or Truncate
FileAccess Read, ReadWrite, or Write
FileShare Inheritable, None, Read, ReadWrite, or Write

Để khởi tạo một stream ta dùng cách sau

FileStream file = new FileStream(@"C:\tam.txt",FileMode.Open,FileAccess.ReadWrite);

+ StreamWriter

Lớp này chứa các phương thức để chỉ ghi các kí tự hoặc dòng các ký tự.
Các phương thức :

Close Đóng stream đang đọc dữ liệu.
Peek Trả về ký tự kế tiếp trong stream mà không di chuyển cho trỏ dữ liệu.
Read Đọc một nhóm ký tự kế tiếp trong Stream.
ReadBlock Đọc một khối kí tự kế tiếp trong Stream.
ReadLine Đọc một dòng kế tiếp trong Stream.
ReadToEnd Đọc hết các kí tự trong Stream.

ví dụ :
FileStream file = new FileStream(@"C:\tam.txt", FileMode.Open);
StreamReader read = new StreamReader(file);
Console.WriteLine(read.ReadToEnd());
read.Close();

+ StreamWriter

Lớp này chứa các phương thức để chỉ ghi các kí tự hoặc các dòng ký tự.
Các phương thức :

Close Đóng stream đang ghi dữ liệu
Write Ghi dữ liệu vào stream
WriteLine Ghi dữ liệu vào stream và ngắt xuống dòng mới

FileStream file = new FileStream(@"C:\tam.txt",FileMode.Open);
StreamWriter write = new StreamWriter(file);
write.Write("767667");
write.Close();