C#複習——文字和檔案
阿新 • • 發佈:2018-11-28
FileStream
static void Main()
{
try
{
FileStream fs = new FileStream(@"C:\artists\log.txt",
FileMode.OpenOrCreate, FileAccess.ReadWrite);
byte[ ] alpha = new byte[6] { 65, 66, 67, 68, 69, 70 };
foreach (byte b in alpha)
{
fs.WriteByte(b);
}
fs.Position = 0;
for (int i = 0; i < fs.Length(); i++)
{
Console.Write((char)fs.ReadByte());
}
fs.Close();
}
catch (Exception ex)
{
Console.Write(ex.Message);
}
}
StreamReader
static void Main(string[] args)
{
DataTable dt = new DataTable();//新建空的表格
dt.Columns.Add("id", typeof (string));//增加列
dt.Columns.Add("x", typeof(string));
dt.Columns.Add("y", typeof(string));
StreamReader sr = new StreamReader(filepath,
Encoding.GetEncoding("gb2312"));
string oneline;
while (!sr.EndOfStream)
{
oneline = sr.ReadLine(); //逐行讀取
string[] a = oneline.Split(',');//分割
DataRow dr =dt.NewRow();
dr[0] = a[0];
dr[1] = a[1];
dr[2] = a[2];
dt.Rows.Add(dr);
}
sr.Close();
this.dataGridView1.DataSource = dt;
}
補:
- 正則表示式-替換
string result = String.Empty;
string str = “Just Test the Method”;
result = Regex.Replace(str, “\s{2,}”, " “);
//s{2,} 中的s表示空格,數字2表示兩個或以上的空格 ,替換為後面的” "一個空格
StreamWriter
Public StreamWriter(string path,bool append, Encoding encoding);
- append為false,則該檔案被改寫。
- append為true,資料被追加到檔案中,若沒有則建立。
Directory類
Path類
DirectoryInfo類
- 常見資料夾操作
//獲取當前應用程式的路徑
Console.WriteLine(Directory.GetCurrentDirectory());
//獲取當前計算機所有邏輯驅動器的名稱
string[] drvs=Directory.GetLogicalDrives();
foreach(string drv in drvs)
{
Console.WriteLine(drv);
}
//新建資料夾
Directory.CreateDirectory("c:\\mydirectory");
//刪除資料夾
Directory.Delete("C:\\mydirectory",true);
//移動資料夾
Directory.Move("c:\\temp","d:\\qq\\temp");
//顯示所有子檔案
DirectoryInfo dInfo=new DirectoryInfo("c:\\WinNT");
DirectoryInfo[] dirs = dInfo.GetDirectories();
foreach(DirectoryInfo dir in dirs)
{
Console.WriteLine(dir.Name);
}
//顯示資料夾中的檔案
DirectoryInfo dInfo=new DirectoryInfo("c:\\WinNT");
FileInfo[] fs = dInfo.GetFiles();
foreach(FileInfo f in dirs)
{
Console.WriteLine(f.Name);
}
//顯示資料夾中的檔案(指定副檔名)
DirectoryInfo dInfo=new DirectoryInfo("c:\\WinNT");
FileInfo[] fs = dInfo.GetFiles("*.exe");
foreach(FileInfo f in dirs)
{
Console.WriteLine(f.Name);
}
//複製檔案
File.Copy("c:\\temp.txt", "D:\\temp.txt",true);
//刪除檔案
File.Delete("c:\\temp.txt");
//確定檔案是否存在
bool b=File.Exists("c:\\temp.txt");
//獲取檔案大小
FileInfo f=new FileInfo("檔名");
long leng=f.Length;
//獲取檔案的副檔名
FileInfo f=new FileInfo("檔名");
string ext=f.Extension;
string ext2=Path.GetExtension("路徑全名");//兩種方式
//獲取路徑中的檔名
FileInfo f=new FileInfo("檔名");
string name=f.name;
string name22=Path.GetFileName("路徑全名");//兩種方式
- 獲取資料夾資訊
DirectoryInfo dInfo=new DirectoryInfo (“c:\Win”);
資訊 | 操作 |
---|---|
最近訪問時間 | dInfo.LastAccessTime.ToLongDateString() |
建立時間 | dInfo.CreationTime.ToLongTimeString() |
上級資料夾 | dInfo.Parent.Name() |
有子資料夾 | dInfo.GetDirectories().Length.ToString() |
包含檔案 | dInfo.GetFiles().Length.ToString() |