程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 小學生之文件操作,小學生操作

小學生之文件操作,小學生操作

編輯:C#入門知識

小學生之文件操作,小學生操作


如何讀寫文件

  

//創建文件流
FilesStream myfs=new FilesStream(path,FileMode.Create);
//創建寫入器
StreamWriter mySw=new StreamWriter(myfs);
//將錄入的內容寫入文件
mySw.Write("我是好人");
//關閉寫入器
mySw.Close();
//關閉文件流
myfs.Close();

 

1.保持內存中數據持久化的方案?

解析:數據庫保存(也是文件:XXX.MDF)

      文件(文本文件,xml文件,XX.bin)

2.講FileMode取值

  FileMode.Create:看對應目錄下是否有該文件,如果有覆蓋,不會報錯

  CreateNew新建一個文件。如果文件存在會發生異常,提示文件已經存在

  FileMode.Open():打開指定路徑下已有文件,為讀取文件做好准備工作.

  FileMode.OpenOrCreate():有的話,就讀,沒有就寫

  FileMode.Append:在原有文件的結尾追加新的內容

3.講讀取文件設置編碼

解析:  StreamReader sr = new StreamReader(fs,Encoding.GetEncoding("utf-8"));

4.IO原理圖

練習,需求說明:

  實現小型資源管理器,支持顯示文件信息

  使用TreeView控件顯示文件夾結構

  使用ListView控件顯示選定文件夾下文件列表

 1         /// <summary>
 2         /// 將數據綁定到TreeView控件中的根節點
 3         /// </summary>
 4         private void LoadTreeView() 
 5         {
 6 
 7            DirectoryInfo dir = new DirectoryInfo(@"E:\");
 8             //返回當前目錄的子目錄
 9            DirectoryInfo[] dirs= dir.GetDirectories();
10            foreach (DirectoryInfo item in dirs)
11            {
12                TreeNode tn = new TreeNode();
13                tn.Text = item.Name;
14                tn.Tag = item.FullName;
15                this.treeView1.Nodes.Add(tn);
16            }
17           
18         }
19         private void Form1_Load(object sender, EventArgs e)
20         {
21             LoadTreeView();
22 
23         }
24         /// <summary>
25         /// 綁定子目錄
26         /// </summary>
27         /// <param name="node"></param>
28         private void BindInfo(TreeNode node) 
29         {
30             DirectoryInfo dir = new DirectoryInfo(node.Tag.ToString());
31             DirectoryInfo[] dirs = dir.GetDirectories();
32             foreach (DirectoryInfo item in dirs)
33             {
34                 TreeNode tn = new TreeNode();
35                 tn.Text = item.Name;
36                 tn.Tag = item.FullName;
37                 node.Nodes.Add(tn);
38             }
39             //獲取目錄下文件列表,dir是目錄對象
40             FileInfo[] fileInfo = dir.GetFiles();
41             //定義泛型集合存儲文件信息
42             List<MyFile> files = new List<MyFile>();
43             //遍歷文件列表
44             foreach (FileInfo item in fileInfo)
45             {
46                 MyFile file = new MyFile();
47                 file.FileName = item.Name;
48                 float value = item.Length;
49                 file.FileLength = float.Parse(Math.Round(value / 1024, 2).ToString());
50                 file.FileType = item.Extension;
51                 file.FilePath = item.FullName;
52                 files.Add(file);
53             }
54             if (this.listView1.Items!=null)
55             {
56                 this.listView1.Items.Clear();
57             }
58             foreach (MyFile item in files)
59             {
60                 ListViewItem lvItem = new ListViewItem(item.FileName);
61                 lvItem.SubItems.Add(item.FileLength.ToString());
62                 lvItem.SubItems.Add(item.FileType);
63                 lvItem.SubItems.Add(item.FilePath);
64                 this.listView1.Items.Add(lvItem);
65             }
66         }
67         //單擊綁定文件和文件夾信息
68         private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
69         {
70             //獲取TreeView控件中選中的節點
71             TreeNode node = this.treeView1.SelectedNode;
72             BindInfo(node);
73 
74         }

實現文件復制和刪除

 1         private void 復制ToolStripMenuItem_Click(object sender, EventArgs e)
 2         {
 3             //用戶選擇目標文件夾
 4         DialogResult result=  folderBrowserDialog1.ShowDialog();
 5            if (result==DialogResult.OK)
 6            {
 7                //源文件路勁
 8                string sourcePath = this.listView1.SelectedItems[0].SubItems[3].Text;
 9                //目標文件路勁
10                string desPath = folderBrowserDialog1.SelectedPath;
11                desPath += "\\" + this.listView1.SelectedItems[0].SubItems[0].Text;
12                //復制文件
13                File.Copy(sourcePath, desPath);
14                MessageBox.Show("復制成功!!!");
15            }
16         }
17 
18         private void 刪除ToolStripMenuItem_Click(object sender, EventArgs e)
19         {
20             string sourcePath = this.listView1.SelectedItems[0].SubItems[3].Text;
21             File.Delete(sourcePath);
22             MessageBox.Show("刪除成功!!");
23             TreeNode node = this.treeView1.SelectedNode;
24             BindInfo(node);
25         }


總結:

1.讀寫文件的5個步驟:創建文件流、創建讀寫器、讀寫文件、關閉讀寫器、關閉文件流。

2.文件流的類是FileStream,創建一個文件流時,需要指定操作文件的路勁,文件的打開形式和文件的訪問方式。

3.StreamWriter是一個寫入器,StreamReader是一個讀取器。

4.File類用於對文件進行操作,如復制、移動、刪除等,Directory類用於對文件夾進行操作,它們都是靜態類。

5.靜態類只包含靜態成員,非靜態類可以包含靜態成員;靜態類不能包含實例成員,非靜態類可以包含實例成員;靜態類使用類名訪問成員,非靜態類使用她的實例訪問成員。

6.FileInfo類與File類功能類似,也可以完成對文件的基本操作。不同的是File類不可以實例化對象。如果打算多次重用某個文件對象,可以考慮使用FileInfo類,因為並不總是需要安全檢查的。

7.DirectoryInfo類於Directory類功能類似,可以完成對文件夾的基本操作。如果打算多次重用某個目錄對象,可以考慮使用DirectoryInfo類的實例方法。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved