VB.NET System.IO在實(shí)際編程中的作用體現(xiàn)
在程序開(kāi)發(fā)中,往往會(huì)對(duì)文件文本等進(jìn)行相應(yīng)的操作。而使用VB.NET編程語(yǔ)言進(jìn)行的程序開(kāi)發(fā),會(huì)幫助我們輕松的實(shí)現(xiàn)文件的各種操作。首先讓我們一起來(lái)認(rèn)識(shí)一下與之有關(guān)的一個(gè)類(lèi)—VB.NET System.IO的應(yīng)用方式。#t#
文件操作是軟件開(kāi)發(fā)中必不可少的任務(wù)。記得筆者在學(xué)習(xí)Visual Basic6.0文件操作的編程時(shí)頗費(fèi)了一番周折。不過(guò)現(xiàn)在有了.Net大大簡(jiǎn)化了開(kāi)發(fā)難度,簡(jiǎn)化了學(xué)習(xí)難度,使初學(xué)者可以在很短的時(shí)間就可以掌握與文件相關(guān)的編程技巧。
認(rèn)識(shí)VB.NET System.IO
在.Net中與文件有關(guān)的類(lèi)都集中在VB.NET System.IO這個(gè)大類(lèi)中,在此大類(lèi)中我們可以看見(jiàn)很多以“File”開(kāi)頭的類(lèi)名。下面我們就介紹幾個(gè)常用的類(lèi),它們分別是:
Directory :用于創(chuàng)建、移動(dòng)和枚舉目錄和子目錄的靜態(tài)方法。
File:用于創(chuàng)建、復(fù)制、刪除、移動(dòng)和打開(kāi)文件的靜態(tài)方法,并協(xié)助創(chuàng)建 FileStream 對(duì)象。
FileInfo:提供創(chuàng)建、復(fù)制、刪除、移動(dòng)和打開(kāi)文件的實(shí)例方法,并且?guī)椭鷦?chuàng)建 FileStream對(duì)象。
FileStream:與 Stream對(duì)象配合,完成更多的文件操作。我們將在后一節(jié)對(duì)它進(jìn)行介紹。
Path:指定文件的目錄路徑信息。
***個(gè)任務(wù)
在下面的程序片段中我們將使用上面提到的幾個(gè)類(lèi)和大家最常用的“文件打開(kāi)”對(duì)話窗來(lái)完成一個(gè)基于文件的編程。
程序功能:將文件移動(dòng)到回收站文件夾中,并且從回收站中運(yùn)行這些程序。
可能很多讀者會(huì)問(wèn),為什么以這段代碼為例呢?原因有三個(gè):1.這段代碼符合本節(jié)的內(nèi)容。2.在Windows發(fā)布之初很多病毒程序就是被放在回收站中的,而這些技術(shù)必定會(huì)提高讀者學(xué)習(xí)本文的興趣。3.此程序還有一定的實(shí)用性。如果有比較重要的文件你可以將它Copy到回收站中。誰(shuí)會(huì)想到在回收站中保存文件呢?而且對(duì)于一般用戶(hù)來(lái)說(shuō),他們不會(huì)知道回收站可以保存并運(yùn)行文件,因?yàn)殡p擊回收站中的文件不會(huì)運(yùn)行,只會(huì)顯示它的文件屬性。就算打開(kāi)回收站也只能看見(jiàn)要被刪除的文件,而看不見(jiàn)我們專(zhuān)門(mén)保存到回收站的文件。
添加控件并設(shè)置相關(guān)屬性:三個(gè)Button、一個(gè)LISTBOX、一個(gè)OPENFILEDIALOG控件。
VB.NET System.IO的應(yīng)用代碼如下
代碼是VB.NET編寫(xiě)的。
雙擊Button1加入如下代碼,在代碼中有詳細(xì)的注釋?zhuān)?/p>
- Private Sub Button1_Click?ByVal sender As System.Object?
- ByVal e As System.EventArgs?
- Handles Button1.Click
- OpenFileDialog1.ShowDialog??
- ‘顯示文件打開(kāi)對(duì)話框
- Dim fname As New FileInfo?OpenFil
- eDialog1.FileName
- ?''初始化FILEINFO類(lèi),此類(lèi)可以獲得文件的各種信息,在本代碼中用來(lái)獲得文件名
- Dim copyf As System.IO.File
- ''初始化FILE類(lèi),此類(lèi)用來(lái)對(duì)文件進(jìn)行具體的操作,本代碼中用來(lái)實(shí)現(xiàn)文件的轉(zhuǎn)移
- sname = fname.Name??''使用fileinfo類(lèi)的name屬性來(lái)獲得文件名,但不包含路徑
- copyf.Move?OpenFileDialog1.FileName? ″c?\recycled\″ & sname?
- ''移動(dòng)到回收站文件夾,RECYCLED是回收站文件夾
- End Sub
雙擊Button2加入如下代碼,在VB.NET System.IO的代碼中有詳細(xì)的注釋?zhuān)?/p>
- Private Sub Button2_Click?
- ByVal sender As Object?
- ByVal e As System.EventArgs?
- Handles Button2.Click
- Dim zh
- Dim pj As String
- ''在listbox控件中選定要運(yùn)行的文件
- zh = ListBox1.SelectedIndex‘用zh記錄選中的序列號(hào)
- pj = ListBox1.Items.Item?zh?
- ''用pj記錄序列號(hào)所對(duì)應(yīng)的文字,本代碼中對(duì)應(yīng)的文字表示文件名
- Me.Text = ″正在運(yùn)行程序″ + pj
- ''在窗口標(biāo)題欄處表示運(yùn)行的程序,這些程序都是在listbox中列出的,
即在回收站中的文件- Dim spros As New System.Diagnostics.Process??
- ''Process是進(jìn)程類(lèi),在Visual Basic .Net中
與Visual Basic6.0中的shell函數(shù)類(lèi)似,- ''在后面的文章中我們將對(duì)它進(jìn)行專(zhuān)門(mén)的探討。
- spros.Start?pj?
- '' 利用Process類(lèi)中的start屬性運(yùn)行選定的文件
- End Sub
雙擊在Button3加入如下代碼,在代碼中有詳細(xì)的注釋?zhuān)?/p>
- Private Sub Button3_Click?
- ByVal sender As Object?
- ByVal e As System.EventArgs?
- Handles Button3.Click
- Dim dir As System.IO.Directory
- ''由于目錄對(duì)象可以直接實(shí)現(xiàn)目錄的操作所以這里使用它獲得回收文件的個(gè)數(shù)
- Dim i As Integer
- Dim filename? fileno
- ListBox1.Items.Clear??‘清空l(shuí)istbox,為下次顯示做準(zhǔn)備
- filename = dir.GetFiles?″c?\recycled″? ″?″?
- ''利用Directory類(lèi)的Getfile屬性獲得文件數(shù)組
- fileno = dir.GetFiles?″c?\recycled″? ″?″?.Length
- ''利用Length獲得數(shù)組的大小即回收站中到底有多少文件
- For i = 0 To fileno - 1
- ListBox1.Items.Add?filename?i??
- ''將每個(gè)文件添加到listbox中,顯示回收站中的具體文件
- Next
- End Sub
程序說(shuō)明:如果你要運(yùn)行文件,請(qǐng)先選中一個(gè)文件,再點(diǎn)擊“從回收站啟動(dòng)文件”按鈕。在顯示回收站文件中各位會(huì)看見(jiàn)一些奇怪的文件名,這些文件是你刪除的文件,但是微軟將這些文件的原文件名給改變了。所以大家不用理會(huì)這些文件,但是這些文件照樣可以在本程序中通過(guò)建立進(jìn)程并運(yùn)行,和你保存到回收站中的文件除了名字不同外,其他都一樣。注意當(dāng)你在“我的電腦”和“資源管理器”中打開(kāi)回收站并選擇“清空回收站”,那回收站中所有文件都會(huì)被刪除。
此外VB.NET System.IO的應(yīng)用程序?qū)⒁苿?dòng)的文件保存在C盤(pán)中的回收站,你如果想保存到其他盤(pán)中的回收站,請(qǐng)將盤(pán)符改為相應(yīng)的盤(pán)名。如:D:\F?\等等。