技術研究 2008-12-12 11:14:56 閱讀103 評論0 字號:大中小
創(chuàng)建文本文件 向文件寫入文本
寫入文本文件 向文件寫入文本
讀取文本文件 從文件讀取文本
向文件中追加文本
File.AppendTextFileInfo.AppendText重命名或移動文件
File.MoveFileInfo.MoveTo刪除文件
File.DeleteFileInfo.Delete復制文件
File.CopyFileInfo.CopyTo獲取文件大小
FileInfo.Length獲取文件屬性
File.GetAttributes設置文件屬性
File.SetAttributes確定文件是否存在
File.Exists讀取二進制文件 對剛創(chuàng)建的數(shù)據文件進行讀取和寫入
寫入二進制文件 對剛創(chuàng)建的數(shù)據文件進行讀取和寫入
檢索文件擴展名
Path.GetExtension檢索文件的完全限定路徑
Path.GetFullPath檢索路徑中的文件名和擴展名
Path.GetFileName更改文件擴展名
Path.ChangeExtension目錄操作
System.IO 類
目錄操作
string[] drives = Directory.GetLogicalDrives(); //本地驅動器的名,如:C:\等
string path = Directory.GetCurrentDirectory(); //獲取應用程序的當前工作目錄
Path.GetFileName(@"c:\dir\file.txt"); //獲取子目錄的名字,result的結果是file.txt
Directory.GetFiles(路徑及文件名) //獲取指定目錄中的文件名(文件列表)
DirectoryInfo di = new DirectoryInfo(@"f:\MyDir"); //構造函數(shù)創(chuàng)建目錄
DirectoryInfo di=Directory.CreateDirectory(@"f:\bbs"); //創(chuàng)建對象并創(chuàng)建目錄
if (di.Exists == false) //檢查是否存在此目錄
di.Create(); //創(chuàng)建目錄
DirectoryInfo dis = di.CreateSubdirectory("SubDir"); //以相對路徑創(chuàng)建子目錄
dis.Delete(true); //刪除剛創(chuàng)建的子目錄
di.Delete(true); //刪除創(chuàng)建目錄
文件操作
Directory.Delete(@"f:\bbs2", true); //刪除目錄及其子目錄和內容(如為假不能刪除有內容的目錄包括子目錄)
Directory.GetDirectories 方法 //獲取指定目錄中子目錄的名稱
string[] dirs = Directory.GetDirectories(@"f:\", "b*");
Console.WriteLine("此目錄中以b開頭的子目錄共{0}個!", dirs.Length);
foreach (string dir in dirs) { Console.WriteLine(dir); }
Directory.GetFileSystemEntries //獲取指定目錄中的目錄及文件名
Directory.GetLogicalDrives //檢索此計算機上格式為“<驅動器號>:\”的邏輯驅動器的名稱,【語法同上】
Directory.GetParent //用于檢索父目錄的路徑。
DirectoryInfo a = Directory.GetParent(path);
Console.WriteLine(a.FullName);Directory.Move //移動目錄及其在內的所有文件
Directory.Move(@"f:\bbs\1", @"f:\bbs\2"); //將文件夾1內的文件剪到文件夾2內 文件夾2是剛創(chuàng)建的
Stream // 對字節(jié)的讀寫操作(包含對異步操作的支持) Reading Writing Seeking
BinaryReader和BinaryWriter // 從字符串或原始數(shù)據到各種流之間的讀寫操作
FileStream類通過Seek()方法進行對文件的隨機訪問,默認為同步
TextReader和TextWriter //用于gb2312字符的輸入和輸出
StringReader和StringWriter //在字符串中讀寫字符
StreamReader和StreamWriter //在流中讀寫字符
BufferedStream 為諸如網絡流的其它流添加緩沖的一種流類型.
MemoryStream 無緩沖的流
NetworkStream 互聯(lián)網絡上的流
//編碼轉換
Encoding e1 = Encoding.Default; //取得本頁默認代碼
Byte[] bytes = e1.GetBytes("中國人民解放軍"); //轉為二進制
string str = Encoding.GetEncoding("UTF-8").GetString(bytes); //轉回UTF-8編碼
//文本文件操作:創(chuàng)建/讀取/拷貝/刪除
using System;
using System.IO;
class Test
{
string path = @"f:\t.txt";
public static void Main()
{
//創(chuàng)建并寫入(將覆蓋已有文件)
if (!File.Exists(path))
{
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine("Hello");
}
}
//讀取文件
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
//刪除/拷貝
try
{
File.Delete(path);
File.Copy(path, @"f:\tt.txt");
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
//流文件操作
private const string name = "Test.data";
public static void Main(String[] args)
{
//打開文件() ,或通過File創(chuàng)建立如:fs = File.Create(path, 1024)
FileStream fs = new FileStream(name, FileMode.CreateNew);
//轉換為字節(jié) 寫入數(shù)據(可寫入中文)
Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
//字節(jié)數(shù)組,字節(jié)偏移量,最多寫入的字節(jié)數(shù)
fs.Write(info, 0, info.Length);
w.Close();
fs.Close();
//打開文件
fs = new FileStream(name, FileMode.Open, FileAccess.Read);
//讀取
BinaryReader r = new BinaryReader(fs);
for (int i = 0; i < 11; i++)
{
Console.WriteLine(r.ReadInt32());
}
w.Close();
fs.Close();
}