19/05/2011

Contents

Ch(cid:1223)(cid:1215)ng 8

(cid:127) Introduction (cid:127) Data Hierarchy (cid:127) Files and Streams (cid:127) Classes File and Directory (cid:127) Run file

Files and streams

Introduction

Data Hierarchy

(cid:127) (cid:39)(cid:879) li(cid:644)u :

(cid:127) Các bi(cid:636)n và m(cid:608)ng ch(cid:646) l(cid:585)u tr(cid:879) d(cid:879) li(cid:644)u t(cid:606)m th(cid:861)i (cid:127) Các file (database) s(cid:634) l(cid:585)u tr(cid:879) d(cid:879) li(cid:644)u lâu dài (cid:127) Duy trì d(cid:879) li(cid:644)u trong các t(cid:618)p tin th(cid:585)(cid:861)ng (cid:255)(cid:585)(cid:867)c g(cid:845)i

là d(cid:879) li(cid:644)u b(cid:638)n v(cid:879)ng

– (cid:264)(cid:585)(cid:867)c bi(cid:640)u di(cid:642)n d(cid:585)(cid:859)i d(cid:606)ng bit (0 và 1) – (cid:862) d(cid:606)ng: decimal digits; letters; special symbols – (cid:37)(cid:608)ng mã ASCII – Character l(cid:585)u b(cid:863)i 1 byte, m(cid:855)i byte là 8 bit

(cid:127) C# s(cid:877) d(cid:869)ng :

(cid:127) Máy vi tính l(cid:585)u tr(cid:879) các t(cid:618)p tin trên các thi(cid:636)t b(cid:648) (cid:79)(cid:585)u tr(cid:879) th(cid:873) c(cid:610)p, nh(cid:585)(cid:3)(cid:255)(cid:347)a t(cid:875), (cid:255)(cid:347)a quang và b(cid:259)ng (cid:87)(cid:875)

– (cid:37)(cid:608)ng mã Unicode® character set – Character l(cid:585)u b(cid:863)i 2 byte, m(cid:855)i byte là 8 bit

1

19/05/2011

Files and Streams

(cid:127) C # xem m(cid:855)i (cid:87)(cid:618)p tin nh(cid:585) là m(cid:857)t dòng (lu(cid:851)ng) tu(cid:612)n t(cid:881)

(cid:70)(cid:871)a byte

(cid:127) (cid:48)(cid:855)i t(cid:618)p tin ph(cid:608)i có m(cid:857)t d(cid:610)u k(cid:636)t thúc (cid:127) Các l(cid:859)p File và Directory thu(cid:857)c vùng System.IO (cid:127) Khi m(cid:857)t ch(cid:585)(cid:583)ng trình th(cid:881)c hi(cid:644)n, môi tr(cid:585)(cid:861)ng th(cid:861)i gian

ch(cid:606)y t(cid:606)o ra ba (cid:255)(cid:849)i t(cid:585)(cid:867)ng lu(cid:851)ng : – Console.Out – Console.In – Console.Error

Classes File and Directory

Classes File and Directory

2

19/05/2011

Directory

{

(cid:127) (cid:55)(cid:606)o nút l(cid:644)nh ch(cid:845)n folder (cid:127) Ki(cid:640)m tra xem có ph(cid:608)i folder không private void btbrows_Click(object sender, EventArgs e) (cid:127) Xu(cid:610)t n(cid:857)i dung folder FolderBrowserDialog fbd = new FolderBrowserDialog(); string[] directoryList; (cid:127) Xu(cid:610)t mô t(cid:608) folder fbd.ShowDialog(); if ( Directory.Exists( fileName ) ) directoryList = Directory.GetDirectories( fileName ); inputtextBox.Text = fbd.SelectedPath; outputtextBox.Text += "\r\n\r\nDirectory contents:\r\n"; outputtextBox.Text = MotaFolder( fileName ); for ( int i = 0; i < directoryList.Length; i++ ) private string MotaFolder(string fileName)

}

outputtextBox.Text += directoryList[ i ] + "\r\n"; { string information;

information = fileName + " exists\r\n\r\n"; information += "Created: " + File.GetCreationTime(fileName) + "\r\n"; information += "Last modified: " + File.GetLastWriteTime(fileName) + "\r\n"; information += "Last accessed: " + File.GetLastAccessTime(fileName) + "\r\n"; information += "Attributes: "+ File.GetAttributes(fileName) + "\r\n" + "\r\n"; return information; }

DirectoryInfo dri = new DirectoryInfo(fileName); DirectoryInfo[] a = dri.GetDirectories(); foreach (object i in a) { outputtextBox.Text += "\r\n"+i.ToString(); }

Directory

Directory

private void btnxoafolder_Click(object sender, private void btntaofolder_Click(object sender, EventArgs e) EventArgs e) { {

(cid:127) (cid:55)(cid:606)o folder (cid:127) Xoá folder (cid:127) Thu(cid:857)c tính folder

//Khai báo bi(cid:1219)n toàn c(cid:1257)c FolderBrowserDialog fbd = new FolderBrowserDialog(); private void btnpath_Click(object sender, EventArgs e)

{

if (txtnewfolder.Text == "") if (txtnewfolder.Text == "") { { Directory.Exists( fileName ) File.GetCreationTime(fileName) File.GetLastWriteTime(fileName) File.GetLastAccessTime(fileName) File.GetAttributes(fileName) MessageBox.Show("B(cid:606)n gõ tên folder ch(cid:873)? ", MessageBox.Show("B(cid:606)n gõ tên folder ch(cid:873)? ", "L(cid:585)u ý", MessageBoxButtons.YesNoCancel); "L(cid:585)u ý", MessageBoxButtons.YesNoCancel); txtnewfolder.Focus(); txtnewfolder.Focus();

(cid:127) (cid:37)(cid:606)n có th(cid:640) dùng textBox (cid:255)(cid:640) t(cid:606)o (cid:255)(cid:585)(cid:861)ng d(cid:616)n; fbd.ShowDialog(); txtpath.Text = fbd.SelectedPath;

Dùng m(cid:1187)ng (cid:284)(cid:1203) (cid:367)(cid:1223)u tr(cid:1227)

}

textBox2 tên folder khi t(cid:606)o folder

private void btntaofolder_Click(object sender, EventArgs e)

{

DirectoryInfo dir = new DirectoryInfo(filename); DirectoryInfo[] a = dir.GetDirectories(); foreach (object i in a) DirectoryInfo dri = new DirectoryInfo(txtfolder.Text); dri.Attributes = FileAttributes.Hidden; } } else else { { { txtout.Text += "\r\n"+i.ToString(); }

Directory.CreateDirectory(fbd.SelectedPath+"\\" +txtfolder.Text); MessageBox.Show("(cid:264)ã t(cid:1189)o xong th(cid:1133) m(cid:1257)c con c(cid:1259)a th(cid:1133) m(cid:1257)c v(cid:1263)a ch(cid:1233)n!","Chú ý",MessageBoxButtons.OK,MessageBoxIcon.Information);

}

3

(cid:31)(cid:264)(cid:849)it(cid:585)(cid:867)ngfolder>.Attributes = FileAttributes.Hidden/Readonly/Norman } string path = @"h:\"; string path = @"h:\"; string path1 = txtnewfolder.Text; DirectoryInfo dir = new DirectoryInfo(path); string path2 = path + path1; dir.CreateSubdirectory(txtnewfolder.Text); DirectoryInfo dir = new DirectoryInfo(path2); dir.Delete(); } } }

19/05/2011

File

Ki(cid:1203)m tra file

private void btnduyetfile_Click(object sender, EventArgs e) {

(cid:127) Ki(cid:640)m tra file (cid:127) Duy(cid:644)t file – Mô t(cid:608) – Duy(cid:644)t n(cid:857)i dung file

if (File.Exists(txttenfile.Text)) {

(cid:127) (cid:55)(cid:606)o file (cid:127) Ghi n(cid:857)i dung vào file (cid:127) Xoá file (cid:127) Thu(cid:857)c tính file

string filename = txttenfile.Text; txtout.Text = MotaFile(filename); } }

Duy(cid:1205)t File

(cid:100)(cid:1186)o file

private void btntaofile_Click(object sender, EventArgs e) {

(cid:127) Mô t(cid:608) (cid:127) (cid:49)(cid:857)i dung

File.Create(txttenfile.Text);

}

private string MotaFile(string fileName) {

string information; information = fileName + " exists\r\n\r\n"; information += "Created: " + File.GetCreationTime(fileName) + "\r\n"; information += "Last modified: " + File.GetLastWriteTime(fileName) + "\r\n"; information += "Last accessed: " + File.GetLastAccessTime(fileName) + "\r\n"; information += "Attributes: " + File.GetAttributes(fileName) + "\r\n" + "\r\n"; return information;

}

StreamReader stream = new StreamReader(filename);

txtout.Text += stream.ReadToEnd();

4

19/05/2011

Ghi d(cid:1227) li(cid:1205)u vào File

Xoá File

private void btnxoafile_Click(object sender, EventArgs e)

private void btnghifile_Click(object sender, EventArgs e) {

{

File.Delete(@"D:\data.txt"); MessageBox.Show("(cid:264)ã xóa xong!");

}

string file = txttenfile.Text; StreamWriter stream = new StreamWriter(file, true); stream.WriteLine(“Da nhap mot dong vào File "+file); stream.Close();

}

File

private void btnthuoctinhf_Click(object sender, EventArgs e) {

string file2 = txttenfile.Text; FileInfo fl = new FileInfo(file2); fl.Attributes = FileAttributes.Hidden/Readonly/Norman;

File.Exists( fileName ) File.GetCreationTime(fileName) File.GetLastWriteTime(fileName) File.GetLastAccessTime(fileName) File.GetAttributes(fileName)

}

StreamReader stream = new StreamReader( fileName ); outputtextBox.Text += stream.ReadToEnd();

StreamWriter stream = new StreamWriter(file, true); stream.WriteLine(“Da nhap mot dong vào File "+file); stream.Close();

5

File.Delete(@"D:\data.txt"); (cid:31)(cid:264)(cid:849)it(cid:585)(cid:867)ngfile>.Attributes = FileAttributes.Hidden/Readonly/Norman

19/05/2011

(cid:17)(cid:1193)t l(cid:1213)i

Khi làm vi(cid:644)c v(cid:859)i File và Directory r(cid:610)t d(cid:642) phát sinh l(cid:855)i, b(cid:606)n (cid:70)(cid:612)n t(cid:853) ch(cid:585)(cid:583)ng trình qu(cid:608)n lý t(cid:849)t v(cid:610)n (cid:255)(cid:638) này

try

{// (cid:255)(cid:82)(cid:606)n l(cid:644)nh d(cid:642) phát sinh l(cid:855)i}

catch(..Exception exp1)

{// x(cid:877) lý l(cid:855)i nh(cid:585) th(cid:636) nào}

finally

DirectoryInfo dir = new DirectoryInfo(txtfolder.Text); FileInfo[] a = dir.GetFiles(); foreach (FileInfo i in a) { i.Attributes = FileAttributes.Hidden; }

{// làm vi(cid:644)c gì (cid:255)ó m(cid:628)c dù có l(cid:855)i}

DirectoryInfo[] b = dir.GetDirectories(); foreach (DirectoryInfo j in b) { j.Attributes = FileAttributes.Hidden; }

Run file

try { private void button1_Click(object sender, EventArgs e) {

StreamReader stream = new StreamReader( fileName ); outputtextBox.Text += stream.ReadToEnd(); } // end try Process k = new Process(); k.StartInfo.FileName = "C:\\Windows\\system32\\mspaint.exe"; k.Start(); // handle exception if StreamReader is unavailable }

catch ( IOException ) {

6

MessageBox.Show( "Error reading from file", "File Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); } // end catch