笔记2:文件目录 *** 作

笔记2:文件目录 *** 作,第1张

概述一、Path类        "../"   表示从目前工作目录再往上一层的目录位置,开始向下寻找。 二、选择目录文件         有三个控件可以使用:OpenFileDialog                                                 SaveFileDialog                                            



一、Path类

"../" 表示从目前工作目录再往上一层的目录位置,开始向下寻找。




二、选择目录文件

有三个控件可以使用:OpenfileDialog

SavefileDialog

browFolderbrowserDialog





三、文件目录 *** 作


左边是通用文件目录类,不需要对象即可创建,使用的是共享成员。适用: *** 作步骤少的,不需要过多引用

右边是特定文件目录类,需要创建对象才能 *** 作。 适用: *** 作步骤多,引用多


fileSystemInfo类属性提供:文件或目录的相关信息,如:

Attributes fileSystemInfo的fileAttributes值

CreateTime Get/Set 建立时间

Exits 是否存在

Extension 扩展名(OnlyRead)

Fullname 文件或目录完整名(含路径)(olnyRead)

LastAccesstime

LastWriteTime

name 文件或目录名




四、Directory类(通用)

1、CreateDirecotry 创建目录

2、Delete 删除目录

3、Move 移动(剪切)目录



imports System.IOPublic Class Form1    Private Sub button1_Click(sender As Object,e As EventArgs) Handles button1.Click        Directory.CreateDirectory("D:")        Directory.Delete("D:")        Directory.CreateDirectory("D:")        Directory.Move("D:","D:17")    End SubEnd Class


4、列举目录内容

以前VB列举目录,还得自己编程一块代码,VB.net不用了,有专门的方法:


GetDirectorIEs 取得当前目录下所有子目录

Getfiles 取得当前目录下所有文件(注意:不含子目录的文件)

GetfileSytemEntIEs 取回当前目录下所有目录及对应目录下所有文件

GetCurrentDirectory 返回当前工作目录

GetParent 返回父目录(DirectoryInfo对象)

GetLogicalDrives 返回所有逻辑磁盘名称(字串数组)

GetDirecotryRoot 返回根目录


    Private Sub button1_Click(sender As Object,e As EventArgs) Handles button1.Click        Dim p() As String = Directory.GetDirectorIEs("D:\tools") '获取所有子目录        'Dim p() As String = Directory.GetDirectorIEs("D:\tools","s*")'目录过滤,不分大小写        For i As Int32 = 0 To UBound(p)            ListBox1.Items.Add(p(i))        Next    End Sub


    Private Sub button1_Click(sender As Object,e As EventArgs) Handles button1.Click        Dim p() As String = Directory.Getfiles("D:\tools") '获取指定目录所有文件        'Dim p() As String = Directory.Getfiles("D:\tools","s*")'文件过滤,不分大小写        For i As Int32 = 0 To UBound(p)            ListBox1.Items.Add(p(i))        Next    End Sub


imports System.IOPublic Class Form1    Private Sub button1_Click(sender As Object,e As EventArgs) Handles button1.Click        Dim p() As String = Directory.GetfileSystemEntrIEs("D:\tools") '获取指定目录(含子目录)及所有文件(含子目录        Array.sort(p) '排序        For i As Int32 = 0 To UBound(p)            ListBox1.Items.Add(p(i))        Next    End SubEnd Class



imports System.IOPublic Class Form1    Private Sub button1_Click(sender As Object,e As EventArgs) Handles button1.Click        Dim p() As String = Directory.GetfileSystemEntrIEs("D:\tools") '获取指定目录(含子目录)及所有文件(含子目录        Array.sort(p) '排序        For i As Int32 = 0 To UBound(p)            ListBox1.Items.Add(p(i))        Next        Dim s As String() = Directory.GetLogicalDrives        Dim str As String = ""        For i As Int32 = 0 To UBound(s)            str &= vbCrLf & s(i)        Next        str &= vbCrLf & Directory.GetCurrentDirectory        MessageBox.Show(str)    End SubEnd Class


5、获取、设置目录相关特性

GetCreationTime

SetCreationTime

GetLastAccesstime

SetLastAccesstime


GetLastWriteTime

SetLastWriteTime



imports System.IOPublic Class Form1    Private Sub button1_Click(sender As Object,e As EventArgs) Handles button1.Click        Dim s As String = "D:.txt"        ListBox1.Items.Add(file.GetCreationTime(s))        ListBox1.Items.Add(file.GetLastAccesstime(s))        ListBox1.Items.Add(file.GetLastWriteTime(s))        file.SetLastWriteTime(s,New DateTime(2000,2,14,14))        ListBox1.Items.Add(file.GetCreationTime(s))        ListBox1.Items.Add(file.GetLastAccesstime(s))        ListBox1.Items.Add(file.GetLastWriteTime(s))    End SubEnd Class





五、DirectoryInfo类(特定)

先通过New创建DirectoryInfo对象后,就可使用上面方法与成员。

也可以用前面Directory类中的CreateDirectory方法创建一个目录来建立一个DirectoryInfo对象。


1、 *** 作目录:

Create 创建目录(注意创建前的判断目录是否已经存在)

Delete 删除目录

Moveto 移动目录(更名目录也可用它,后面的file类更名一样这样使用)



imports System.IOimports System.IO.fileSystemInfoPublic Class Form1    Private Sub button1_Click(sender As Object,e As EventArgs) Handles button1.Click        Dim fsi As New DirectoryInfo("d:")        If Not fsi.Exists Then            fsi.Create()        End If        Directory.SetCurrentDirectory("d:")        If Not fsi.Createsubdirectory("3").Exists Then            fsi.Moveto("D:17")        End If    End SubEnd Class


2、列举目录

GetDirectorIEs 返回所有子目录(DirecotryInfo对象集合)

Getfiles 返回当前当前目录下所有文件(fileInfo对象集合)

GetfileSystemInfos 返回所有子目录和对应目录下所有文件(fileSystemInfo对象集合)


imports System.IOimports System.IO.fileSystemInfoPublic Class Form1    Private Sub button1_Click(sender As Object,e As EventArgs) Handles button1.Click        Dim myDirInfo As New DirectoryInfo("D:\tools")                For Each s As fileSystemInfo In myDirInfo.EnumeratefileSystemInfos("S*")            ListBox1.Items.Add(s.Fullname.ToString)        Next        For Each d As DirectoryInfo In myDirInfo.GetDirectorIEs("g*")            ListBox1.Items.Add(d.Fullname.ToString)        Next    End SubEnd Class


3、目录属性

Exists 判断DirectoryInfo目录是否存在

name 目录名

Parent 父目录对象

Root 根目录对象


4、注意点

创建后(未关闭程序),其它程序打开它时会发生异常。

解决办法:创建文件流,用关闭流的方式释放资源。

imports System.IOimports System.IO.fileSystemInfoPublic Class Form1    Private Sub button1_Click(sender As Object,e As EventArgs) Handles button1.Click        file.Create("D:.txt")        'Dim a As fileStream = file.Create("D:.txt") '建立文件流        'a.Close()    End SubEnd Class






六、file类(通用)

同前面目录Directory类相似,方法成员如下:


*** 作文件:

Create 创建文件(判断文件是否存在 ,创建缓冲区)

Open

OpenRead

OpenWrite

Move

Delete

copy

*** 作文件属性:

Exits

GetAttributes

GetCreationTime

GetLastAccesstime

GetLastWriteTime

SetCreationTime

SetLastAccesstime

SetLastWriteTime



需要注意的是,打开文件时有几个枚举:

Public Shared Function Open(Byval Path as String,Byval mode as filemode,byval access as fileAcess,byval share as fileShare) As fileStream

1、返回的是fileStream

2、fileMode 以什么方式打开

Append 追加末端

Create 建立文件(若存在则覆盖)

CreateNew 建立全新(若存在该文件则出错)

Open 打开现存文件(不存在则出错)

Truncate 打开现存文件,并将长度截断为0(清空文件)

3、Access 所允许自己 *** 作的行为:

Read

Write

ReaDWrite

4、fileShare 此时其它程序允许 *** 作的权限:

None 本程序独享(其它程序不能读也不能写)

Read 其它程序只读

Write 其它程序可写

ReaDWrite 其它程序可读写







七、fileInfo类(特定)

同DiretoryInfo类似。需建立对象。


*** 作文件方法:

copyTo

Create

Delete

Moveto

Open

*** 作文件属性方法:

Directory 父目录

Diretoryname 完整名

Exists

Length 文件大小

name 文件名






八、fileSystemWatcher文件系统监视器

vb.net中有这个控件,可以单独创建对象来 *** 作。流程如下:


fileSystemWatcher属性主要有:

Path 所监视的目录

Filter 所监视的文件类型(过滤)

NotifyFilter 要监视的项目(大小、名称、建立时间、文件、目录等)

IncludeSubdirectorIEs 是否含子目录

EnableRaisingEvents 是否启动监视


fileSsytemWatcher主要事件:

Deleted 文件或目录被删除时

Changed 文件或目录变更时

Created 文件或目录建立时

Renamed 文件或目录更名时



imports System.IOPublic Class Form1    Public WithEvents fsw As New fileSystemWatcher    Private Sub Form1_Load(sender As Object,e As EventArgs) Handles MyBase.Load        fsw.EnableRaisingEvents = False '关闭监视        fsw.Path = "D:"        fsw.Filter = "*.txt"        fsw.IncludeSubdirectorIEs = False        fsw.NotifyFilter = NotifyFilters.filename Or NotifyFilters.Size    End Sub    Private Sub fsw_changed(sender As Object,e As fileSystemEventArgs) Handles fsw.Changed        'ListBox1.Items.Add(Now.ToString & " " & e.FullPath) '会遇线程        MessageBox.Show(e.FullPath)    End Sub    Private Sub button1_Click(sender As Object,e As EventArgs) Handles button1.Click        fsw.EnableRaisingEvents = True '启动监视    End SubEnd Class
总结

以上是内存溢出为你收集整理的笔记2:文件目录 *** 作全部内容,希望文章能够帮你解决笔记2:文件目录 *** 作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1276778.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存