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