C#文件操作
文件操作
File类,FileInfo类.using System.IO命名空间
(一)创建
方法一:
1 private string path = @"F:\Text\aaa.txt"; 2 private void CreateFile_Click(object sender, EventArgs e) 3 { 4 FileStream fs = File.Create(path); 5 fs.Close();//返回FileStream必须释放流 6 }
方法二:
1 private string path = @"F:\Text\aaa.txt"; 2 private void CreateFile_Click(object sender, EventArgs e) 3 { 4 FileInfo CreateFile = new FileInfo(path); 5 FileStream stream = CreateFile.Create(); 6 stream.Close();//返回FileStream类型必须释放流 7 }
(二)删除
方法一:
1 private string path = @"F:\Text\aaa.txt"; 2 private void DeleteFile_Click(object sender, EventArgs e) 3 { 4 File.Delete(path); 5 }
方法二:
1 private string path = @"F:\Text\aaa.txt"; 2 private void DeleteFile_Click(object sender, EventArgs e) 3 { 4 FileInfo DeleteFile = new FileInfo(path); 5 DeleteFile.Delete(); 6 }
(三)是否存在
方法一:
1 private string path = @"F:\Text\aaa.txt"; 2 private void ExistFile_Click(object sender, EventArgs e) 3 { 4 bool ex = File.Exists(path); 5 if (ex) 6 { 7 MessageBox.Show("存在"); 8 } 9 else 10 { 11 MessageBox.Show("不存在"); 12 } 13 }
方法二:
1 private string path = @"F:\Text\aaa.txt"; 2 private void ExistFile_Click(object sender, EventArgs e) 3 { 4 FileInfo ExistFile = new FileInfo(path); 5 bool ex = ExistFile.Exists; 6 if (ex) 7 { 8 MessageBox.Show("存在"); 9 } 10 else 11 { 12 MessageBox.Show("不存在"); 13 } 14 }
(四)复制---不能跨盘符
方法一:
1 private string path = @"F:\Text\aaa.txt"; 2 private void CopyFile_Click(object sender, EventArgs e) 3 { 4 File.Copy(path, @"F:\Text\bbb.txt");//复制的同时里面的内容也和复制 5 }
方法二:
1 private void CopyFile_Click(object sender, EventArgs e) 2 { 3 FileInfo CopyFile = new FileInfo(path); 4 CopyFile.CopyTo(@"F:\Text\bbb.txt"); //复制的同时里面的内容也和复制 5 }
(五)移动(改名)---不能跨盘符
注:Move()或MoveTo(): 1.路径不同名字相同(相当于--剪切),
2.路径不同名字不同(相当于--剪切+重命名),
3.路径相同名字不同(相当于--重命名).
且移动是同时将文件夹内的所有对象,移动.
方法一:
1 private string path = @"F:\Text\aaa.txt"; 2 private void MoveFile_Click(object sender, EventArgs e) 3 { 4 File.Move(path, @"F:\Test\bbb.txt"); 5 }
方法二:
1 private string path = @"F:\Text\aaa.txt"; 2 private void MoveFile_Click(object sender, EventArgs e) 3 { 4 FileInfo MoveFIle = new FileInfo(path); 5 MoveFIle.MoveTo(@"F:\Test\ccc.txt"); 6 }
(六)获得文件名
注:只有FileInfo()类一种方法
1.只获取文件名(貌似没什么用--下面show()的内容就是aaa.txt)
1 private string path = @"F:\Text\aaa.txt"; 2 private void FileName_Click(object sender, EventArgs e) 3 { 4 FileInfo FileName = new FileInfo(path); 5 string name = FileName.Name; 6 MessageBox.Show(name); 7 }
2.或取文件全名(包括路径)
1 private string path = @"F:\Text\aaa.txt"; 2 private void FileName_Click(object sender, EventArgs e) 3 { 4 FileInfo FileName = new FileInfo(path); 5 string name = FileName.FullName; 6 MessageBox.Show(name); 7 }
(七)获得扩展名
注:只有FileInfo()类一种方法
1 private string path = @"F:\Text\aaa.txt"; 2 private void ExtensionName_Click(object sender, EventArgs e) 3 { 4 FileInfo ExtensionName = new FileInfo(path); 5 string exname = ExtensionName.Extension; 6 MessageBox.Show(exname); 7 }
(八)获取辅助属性
注:只有File()类一种方法
1 private string path = @"F:\Text\aaa.txt"; 2 private void GetAttribute_Click(object sender, EventArgs e) 3 { 4 FileAttributes Attributes = File.GetAttributes(path); 5 DateTime CreateTime = File.GetCreationTime(path); 6 DateTime LastAccessTime = File.GetLastAccessTime(path); 7 DateTime GetLastWriteTime = File.GetLastWriteTime(path); 8 MessageBox.Show(Attributes.ToString()+"\n"+CreateTime.ToString()+"\n"+LastAccessTime.ToString()+"\n"+GetLastWriteTime.ToString()); 9 }
(九)修改辅助属性
注:只有File()类一种方法
private string path = @"F:\Text\aaa.txt"; private void button1_Click(object sender, EventArgs e) { FileAttributes Attributes = new FileAttributes(); Attributes = FileAttributes.Hidden; File.SetAttributes(path, Attributes); File.SetCreationTime(path, DateTime.Now); File.SetLastAccessTime(path, DateTime.Now); File.SetLastWriteTime(path, DateTime.Now); }
(十)打开保存
文件读写
注:所有打开new一个新类之后先写 类名.close()
FileStream类:比较通用。
打开
1 private string path = @"F:\Text\aaa.txt"; 2 private void Open_Stream_Click(object sender, EventArgs e) 3 { 4 FileStream stream = new FileStream(path, FileMode.Open);//读出的数据是以二进制代码形式存储 5 byte[] nr = new byte[stream.Length]; 6 stream.Read(nr,0,nr.Length); 7 stream.Close(); 8 //把byte[]的内容变成字符串放在文本框中。 9 string s = System.Text.Encoding.Default.GetString(nr); 10 textBox1.Text = s; 11 }
保存
1 private string path = @"F:\Text\aaa.txt"; 2 private void Save_Stream_Click(object sender, EventArgs e) 3 { 4 //把文本框的字符串变成二进制数组 5 byte[] nr = System.Text.Encoding.Default.GetBytes(textBox1.Text); 6 //送到文件中去 7 FileStream stream = new FileStream(path, FileMode.OpenOrCreate); 8 stream.Write(nr, 0, nr.Length); 9 stream.Close(); 10 }
StreamReader类:
打开
1 private string path = @"F:\Text\aaa.txt"; 2 private void Open_Reader_Click(object sender, EventArgs e) 3 { 4 StreamReader reader = new StreamReader(path, Encoding.Default); 5 string s = reader.ReadToEnd(); 6 reader.Close(); 7 textBox1.Text = ""; 8 textBox1.Text = s; 9 }
或
1 private string path = @"F:\Text\aaa.txt"; 2 private void Open_Writer_Click(object sender, EventArgs e) 3 { 4 FileStream stream = new FileStream(path, FileMode.Open); 5 StreamReader reader = new StreamReader(stream, Encoding.Default); 6 string s = reader.ReadToEnd(); 7 reader.Close(); 8 stream.Close(); 9 textBox1.Text = s; 10 }
StreamWriter类:
1 private string path = @"F:\Text\aaa.txt"; 2 private void Save_Writer_Click(object sender, EventArgs e) 3 { 4 StreamWriter writer = new StreamWriter(path, false, Encoding.Default); 5 writer.WriteLine(textBox1.Text); 6 writer.Close(); 7 }
或
1 private string path = @"F:\Text\aaa.txt"; 2 private void Save_Writer_Click(object sender, EventArgs e) 3 { 4 FileStream stream = new FileStream(path, FileMode.OpenOrCreate); 5 StreamWriter writer = new StreamWriter(stream); 6 writer.WriteLine(textBox1.Text); 7 writer.Close(); 8 stream.Close(); 9 } 10