添加一個按鈕button,添加OpenFileDialog控件。
判斷對話框是否選中:
```
//雙擊button按鈕
private void btn_選擇文件_Click(object sender, EventArgs e)
{
if(openFileDialog1.ShowDialog()==DialogResult.OK)
{
FileInfo fInfo = new FileInfo(openFileDialog1.FileName);
string strname = fInfo.Name;
string strcreattime = fInfo.CreationTime.ToLongDateString();
MessageBox.Show(strname + strcreattime);
}
}
```
# 實現 按回車就確定
在窗體load事件中加入以下代碼即可:
```
this.AcceptButton = btn_Login; //這個btn_Login是按鈕的名字
```
# 文件
1. file 類
是靜態方法,可以直接后面跟一個點來調用
直接用 file.open等可以執行相關操作
```
file.exist("c:\\text.txt") //即可判斷文件是否存在。
```
2. fileinfo 類
需要創建對象以后,通過對象調用
```
FileInfo finfo = new FileInfo();
finfo.new("c:\\Test.txt");
```
3. 創建文件
file.create("路徑") 方法,或者是fileinfo對象的 fileinfo.create("路徑")屬性
4. 復制文件
`file.copy;`
`fileinfo.copyto;`
5. 移動文件
`file.move;`
`fileinfo.moveto;`
6. 獲取文件信息
```
file.name; //獲取文件名
file.fullname; //獲取文件完整目錄,包括文件名,一般用 fullname 來獲取(或者說)選中文件
file.directoryName; //獲取文件完整路徑
file.IsReadOnly; //獲取文件是否只讀
file.CreationTime; // 獲取文件創建時間
file.Length; // 獲取文件大小
```

> 判斷是否選擇了文件:用openfiledialog控件;
> 判斷是否選擇了文件夾:用folderBrowserDialog1控件;
判斷文件是否存在,并且用已經選擇的文件創建 fileInfo 對象:
用openfiledialog的 filename 來獲取顯示的文件,并且顯示在文本框里面,**所以后面創建對象的時候,括號中要用到textbox1.Text,而不是textbox1**
```
if (openFileDialog1.ShowDialog() == DialogResult.OK ) // 直接用openfiledialog控件來操作
{
textBox1.Text = openFileDialog1.FileName;
FileInfo finfo = new FileInfo(textBox1.Text);
string name = finfo.Name;
string path = finfo.FullName;
}
```
# 文件夾
directory 類
directoryInfo 類
同file+fileinfo 類
> 1. 但文件夾的 move 移動,不能在不同的磁盤之間移動(比如從 c 盤移動到 D盤是不可以的)
>
> 2. 判斷是否選擇了文件夾:用folderBrowserDialog1控件;
常用方法:
getFilesystemInfo 方法:用來獲取文件夾下所有子文件夾和文件

## 遍歷文件夾
打開文件用的是openfileDialog 控件。
打開文件夾用的是 folderBrowserDialog 控件。控件屬性 view 設置為 details。
獲取文件夾:
`folderBrowserDialog.selectedPath` //一般用 selectedPath 來獲取(或者說選中)文件夾
directory.getfilesystemInfo方法,可以用來獲取文件夾下的所有子文件夾和文件。
## Getfiles
但傳回的是file SystemInfo 的數組,所以必須定義fileSystemInfo的數組來接收。

```
if(folderbrowserdialog.showdialog == dialogResult.ok)
{
textbox1.Text = folderbrowserdialog.selectedPaht;
DirectoryInfo info = new directoryInfo(textbox1.Text);
FiresystemInfo [] finfos = info.getfileSystemInfos;
foreach( FilesystemInfo f in finfos) // 定義一個變量用來表示 finfos 數組里面的元素。因為類型是 filesysteminfo 類型,所以用FilesystemInfo f
{
if(f is DirectoryInfo) //如果是文件夾
{
DirectoryInfo dir = new DirectoryInfo(f.FullName);
listView1.Items.Add(dir.Name); // 添加到listview控件中
listView1.Items\[listView1.Items.Count - 1\].SubItems.Add(dir.FullName);
}
else //如果是個文件
{
FileInfo file = new FileInfo(f.FullName);
listView1.Items.Add(file.Name);
listView1.Items\[listView1.Items.Count - 1\].SubItems.Add(file.FullName);
}
}
}
```

# 如何對打開的文件進行讀寫操作
fileStream 類表示。

## 屬性

## 方法

- 幫助文檔 microsoft helo viewer
- c#開發環境及visual studio安裝注意事項
- c#程序基本結構-基本語法
- Q1: public static void main(String[] args) 是什么意思
- Q2: c#命名空間+Main方法
- Q3:注釋+命名規則+代碼規則
- Q4: c#語句 system => console
- Q5: 數據類型 .net
- Q5: 常用名字、變量、運算符
- Q6: 對話窗輸入-屬性
- Q7: 遞歸
- Q8:決策分支、條件判斷語句 if 語句
- Q9:數組
- Q10:字符串
- Q11:對象、類、訪問權限、靜態動態函數
- Q12:方法及參數——繼承于類
- Q13:構造函數
- Q14:繼承——base 關鍵字
- Q15:多態、虛方法、接口
- Q16:創建窗體應用、控件
- Q17:Ado數據訪問、連接 sqlserver 數據庫
- Q18: 讀取數據command + DataRead( )、DataSet + DateAdapter
- Q19: Entity Framwork、entity 與 ADO.net的區別
- Q20: 對話框、文件、文件夾
- Q21: 導入excel數據、更新到 dbo 數據庫中
- Q26: 獲取 excel 中每個 sheet 的表名
- Q22: 兩個窗體之間數據+方法傳遞
- Q23: 數學對象
- Q24: c#網站編寫
- Q25: visual studio2017如何查看幫助
- Q27: c# dictionary 字典對象
- Q28: 數組與dataTable互相轉化