Lớp thao tác tập tin

10 157 0
Lớp thao tác tập tin

Đang tải... (xem toàn văn)

Thông tin tài liệu

Lớp thao tác tập tin Lớp thao tác tập tin Bởi: Khuyet Danh Sao chép tập tin Một lớp tập tin tồn bên lớp sở gọi File, lớp định vị bên namespace System.OI Lớp File chứa số phương thức tĩnh sử dụng để thao tác tập tin Thật vậy, tất phương thức bên lớp File điều tĩnh Bảng 12.2 liệt kê phương thức lớp File Một số phương thức thao tác tập tin Lớp File Phương thức Mô tả AppendText Nối văn vào tập tin Copy Tạo tập tin từ tập tin hữu Create Tạo tập tin vị trí xác định CreateText Tạo tập tin lưu giữ text Delete Xóa tập tin vị trí xác định Tập tin phải hữunếu không phát sinh ngoại lệ Exists Kiểm tra xem tập tin có thực hữu vị trí nàođó GetAttributes Lấy thông tin thuộc tính tập tin Thông tin bao gồm: tập tin có bị nén hay không, tên thư mục, cóthuộc tính ẩn, thuộc tính đọc, tập tin hệ thống GetCreationTime Trả ngày tập tin tạo GetLastAccessTime Trả ngày tập tin truy cập lần cuối GetLastWriteTime Trả ngày tập tin viết lần cuối Move Cho phép tập tin di chuyển vào vị trí đổitên tập tin 1/10 Lớp thao tác tập tin Open Mở tập tin vị trí đưa Bằng việc mở tập tin viết thông tin hay đọc thông tin từnó OpenRead Mở tập tin hữu để đọc OpenText Mở tập tin để đọc dạng text OpenWrite Mở tập tin xác định để viết SetAttributes Thiết lập thuộc tính cho tập tin SetCreationTime Thiết lập ngày tạo tập tin SetLastAccessTime Thiết lập lại ngày mà tập tin truy cập lầncuối SetLastWriteTime Thiết lập ngày mà tập tin cập nhật lần cuối Chương trình sau minh họa việc chép tập tin Sao chép tập tin // file : filecopy.cs: chép tập tin // sử dụng tham số dòng lệnh namespace Programming_CSharp { using System; using System.IO; public class Tester { public static void Main() { string[] CLA = Environment.GetCommandLineArgs(); if ( CLA.Length < 3) { 2/10 Lớp thao tác tập tin Console.WriteLine("Format: CLA[0]); {0} orig-file new-file", } else { string origfile = CLA[1]; string newfile = CLA[2]; Console.Write("Copy "); try { File.Copy(origfile, newfile); } catch (System.IO.FileNotFoundException) { Console.WriteLine("\n{0} does not exist!", origfile); return; } catch (System.IO.IOException) { Console.WriteLine("\n{0} already exist!", newfile); return; } 3/10 Lớp thao tác tập tin catch (Exception e) { Console.WriteLine("\nAn exception was thrown trying to copy file"); Console.WriteLine(); return; } Console.WriteLine(" Done"); } } } } Chương trình thực cách sau biên dịch tập tin filecopy.exe ta gọi thực tập tin với tham số dòng lệnh sau: filecopy.exe filecopy.cs filecopy.bak Tập tin filecopy.cs hữu tập tin filecopy.bak chưa hữu lệnh thực thi Sao thực thi xong chương trình tập tin filecopy.bak tạo Nếu thực chương trình lần thứ hai với tham số vậy, nhận kết xuất sau: Copy filecopy.bak already exists! Nếu thực chương trình mà tham số nào, hay có tham số, nhận kết sau : Format d:\working\filecopy\filecopy.exe orig-file new-file 4/10 Lớp thao tác tập tin Cuối cùng, điều tệ xảy thực chép tập tin nguồn không tồn tại: Copy filecopy.cs does not exist! Như ta thấy tất kết có chương trình minh họa 12.5 Chương trình thực việc chép tập tin kiểm tra tất tình có thực việc xử lý ngoại lệ Điều cho thấy chương trình vừa đáp ứng mặt logic lập trình vừa đáp ứng việc xử lý ngoại lệ Như biết lệnh sau: string[] CLA = Environment.GetCommandLineArgs(); thực việc lấy tham số dòng lệnh cấp cho chương trình Lớp Environment tìm hiểu sử dụng phần trước Lệnh sau kiểm tra xem chương trình có nhận hởn giá trị tham số dòng lệnh hay không if ( CLA.Length < 3) { Console.WriteLine("Format: {0} orig-file new-file", CLA[0]); } Nếu giá trị nhỏ 3, người sử dụng không cung cấp đủ thông tin Nên nhớ rằng, sử dụng phương thức GetCommandLineArgs, giá trị mà nhận tên chương trình Phần lại tham số dòng lệnh theo sau Điều có nghĩa cần thiết giá trị: tên chương trình, tên tập tin nguồn, tên tập tin Nếu nhập vào không đủ tham số dòng lệnh, chương trình xuất thông báo với tên chương trình thực đọc GetCommandLineArgs Nếu cung cấp đầy đủ tham số, việc xử lý chép thực Để dễ theo dõi chương trình xuất thông báo việc chép file: Console.Write("Copy "); Console.WriteLine(" Done"); Mặc dùng việc chép tập tin phức tạp, lưu ý chương trình có thêm vào đoạn xử lý ngoại lệ Việc gọi hàm Copy File bao bọc khối try, sau ba thể Catch theo sau Bởi có nhiều thứ gây lỗi hoạt động tập tin, đề nghị 5/10 Lớp thao tác tập tin nên đảm bảo cho chương trình thực việc bắt giữ xử lý ngoại lệ tương ứng Hầu hết phương thức File có ngoại lệ định nghĩa cho số lỗi quan trọng xuất Khi tra cứu tài liệu trực tuyến cho lớp Chúng ta tìm thấy ngoại lệ định nghĩa cho phương thức đưa Một cách thực hành lập trình tốt thêm vào đoạn xử lý ngoại lệ với ngoại lệ xuất Trong chương trình ngoại lệ xử lý cho việc gọi hàm Copy() là: catch (System.IO.FileNotFoundException) { Console.WriteLine("\n{0} does not exist!", origfile); return; } Ngoại lệ phát sinh tập tin mà cố chép không tìm thấy, ngoại lệ đặt tên FileNotFoundException Ngoại lệ bắt IOException Ngoại lệ phát sinh từ số ngoại lệ khác Bao gồm thư mục không tìm thấy (DirectoryNotFoundException), kết thúc tập tin không đựơc tìm thấy (EndOfStreamException), có lỗi đọc tập tin (FileLoadException), lỗi tập tin không tìm thấy, ngoại lệ bắt xử lý ngoại lệ bên Ngoại lệ phát sinh tập tin mà cần tạo tồn Cuối cùng, bắt giữ ngoại lệ không mong đợi lại sử dụng ngoại lệ chung hay ngoại lệ tổng quát Bởi nguyên nhân việc xảy ngoại lệ, hiển thị thông điệp thân ngoại lệ phát sinh Nên sử dụng xử lý ngoại lệ thao tác tập tin Phong cách lập trình tốt không nên nghĩ người sử dụng cung cấp cho chương trình thứ mà chương trình cần sử dụng tham số dòng lệnh Lấy thông tin tập tin Ngoài lớp File cung cấp từ thư viện sở, lớp khác thường xuyên sử dụng thể làm việc với tập tin lớp FileInfo Chương trình 12.6 minh họa việc sử 6/10 Lớp thao tác tập tin dụng lớp Trong chương trình lấy tên tập tin hiển thị kích thước ngày quan trọng liên quan đến việc tạo, bổ sung tập tin Sử dụng lớp FileInfo // Filsize.cs namespace Programming_CSharp { using System; using System.IO; public class Tester { public static void Main() { string[] CLA = Environment.GetCommandLineArgs(); FileInfo fiExe = new FileInfo( CLA[0] ); if ( CLA.Length < 2) { Console.WriteLine("Format: {0} filename", fiExe.Name); } else { try { 7/10 Lớp thao tác tập tin FileInfo fiFile = new FileInfo( CLA[1]); if (fiFile.Exists) { Console.WriteLine("******************************"); Console.WriteLine("{0}{1}",fiFile.Name, fiFile.Length); Console.WriteLine("******************************"); Console.WriteLine("Last {0}",fiFile.LastAccessTime); access: Console.WriteLine("Last write: {0}", fiFile.LastWriteTime); Console.WriteLine("Creation: {0}", fiFile.CreationTime); Console.WriteLine("******************************"); } else { Console.WriteLine("{0} doesn’t exist!", fiFile.Name); } } catch (System.IO.FileNotFoundException) { Console.WriteLine("\n{0} does not exists!", CLA[1]); return; } catch (Exception e) 8/10 Lớp thao tác tập tin { Console.WriteLine("\n An exception was thrown trying to copy file"); Console.WriteLine(); return; }// end catch }// end else }// end Main }// end class }// end namespace Kết quả: ****************************** filesize.cs 1360 ****************************** Last access: 12/5/2002 12:00:00 AM Last write:12/5/2002 5:50:50 PM Creation: 12/5/2002 5:53:31 PM ****************************** Một đối tượng FileInfo tạo gắn với tập tin tương ứng: FileInfo fiInfo = new FileInfo( CLA[1]); Tham số khởi dựng lớp FileInfo xác định tên tập tin mà chứa nhận thông tin, trường hợp lấy tham số thứ hai tham số dòng lệnh làm tập 9/10 Lớp thao tác tập tin tin mà thực Nếu người dùng không nhập tên tập tin chương trình in tên chương trình 10/10 .. .Lớp thao tác tập tin Open Mở tập tin vị trí đưa Bằng việc mở tập tin viết thông tin hay đọc thông tin từnó OpenRead Mở tập tin hữu để đọc OpenText Mở tập tin để đọc dạng text OpenWrite Mở tập. .. thư viện sở, lớp khác thường xuyên sử dụng thể làm việc với tập tin lớp FileInfo Chương trình 12.6 minh họa việc sử 6/10 Lớp thao tác tập tin dụng lớp Trong chương trình lấy tên tập tin hiển thị... trình thực cách sau biên dịch tập tin filecopy.exe ta gọi thực tập tin với tham số dòng lệnh sau: filecopy.exe filecopy.cs filecopy.bak Tập tin filecopy.cs hữu tập tin filecopy.bak chưa hữu lệnh

Ngày đăng: 31/12/2015, 21:45

Mục lục

  • Lớp thao tác tập tin

  • Sao chép một tập tin

  • Lấy thông tin về tập tin

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan