本帖最后由 群发软件 于 2017-5-18 00:06 编辑
在vb的以前版本中,我们要获取譬如“我的文档”,“我的电脑”等特殊文件夹位置,需要使用到繁杂的API函数才能获取,而vb.net给我们提供了 Environment.GetFolderPath 方法,可以让我们用一行的代码就能获得以前需要复杂代码才能完成的效果。
Environment 类是。net提供的有关当前环境和平台的信息以及操作它们的方法,使用 Environment 类可检索信息,如命令行参数、退出代码、环境变量设置、调用堆栈的内容、上次系统引导以来的时间,以及公共语言运行库的版本。
Environment 类中提供了一个 GetFolderPath 方法可以让我们获取指向由指定枚举标识的系统特殊文件夹的路径。如果指定系统的特殊文件夹实际存在于计算机上,则返回该文件夹的路径;否则为空字符串 ("")。
下面我们就举几个常用到的特殊文件夹的获取代码:'获取逻辑桌面,注意不是物理文件系统位置。
Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
'获取用于物理上存储桌面上的文件对象的目录。
Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
'获取“我的电脑”文件夹。
Environment.GetFolderPath(Environment.SpecialFolder.MyComputer)
'获取“我的文档”文件夹。
Environment.GetFolderPath(Environment.SpecialFolder.Personal)
Environment.GetFolderPath(Environment.SpecialFolder.History)
还有其它一些不常用的特殊文件夹的枚举值,我们就不做说明了,需要用的时候可以自己查询MSDN.
特例2
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'获得“桌面”所在的目录
ListBox1.Items.Add(My.Computer.FileSystem.SpecialDirectories.Desktop)
'获得“我的文档”所在的目录
ListBox1.Items.Add(My.Computer.FileSystem.SpecialDirectories.MyDocuments)
'以下为乐博网补充的部分例子
'获得“Program Files”文件夹所在的目录
ListBox1.Items.Add(My.Computer.FileSystem.SpecialDirectories.ProgramFiles)
'获得系统“Temp”文件夹所在的目录
ListBox1.Items.Add(My.Computer.FileSystem.SpecialDirectories.Temp)
'获得“MyMusic”所在的目录
ListBox1.Items.Add(My.Computer.FileSystem.SpecialDirectories.MyMusic)
'获得“MyPictures”所在的目录
ListBox1.Items.Add(My.Computer.FileSystem.SpecialDirectories.MyPictures)
End Sub
End Class
特例3
1. 前言今天在配置cppunit的附加依赖项的时候, 需要输入相应的附加依赖项的文件名, 这个很费劲, 我们又不想自己手工一个个的copy, 就希望能够找到一种方法可以直接获取到我们的文件名
2. 处理思路我们这里想到了vb.NET, 利用他的拖拽功能, 直接获取相应的文件名称b2b软件 广告发布软件
3. 实现效果
4. 注意点- 我们这里选用的是listview 控件, 顺手拖过来的
- 他的view 属性一定改为List,这样文件名可以全部显示
- AllowDrop 属性改为True, 允许拖拽
5. 代码Public Class Form1
' 拖拽进入, 清空数据 Private Sub FileLists_DragEnter(sender
As Object, e
As DragEventArgs)
Handles FileLists.DragEnter FileLists.Items.Clear() e.Effect = DragDropEffects.All
End Sub ' 拖拽完成, 显示数据 Private Sub FileLists_DragDrop(sender
As Object, e
As DragEventArgs)
Handles FileLists.DragDrop
Dim MyFiles()
As String MyFiles = e.Data.GetData(DataFormats.FileDrop)
For i =
0 To MyFiles.Count -
1 Dim Items()
As String Items = MyFiles(i).Split(
"\\") FileLists.Items.Add(Items(Items.Count -
1))
Next End Sub ' 双击数据, 实现复制数据到剪切板, 另外注意换行使用 vbCrLf, C 中的 "\n" 不管用 Private Sub FileLists_MouseDoubleClick(sender
As Object, e
As MouseEventArgs)
Handles FileLists.MouseDoubleClick
Dim strData
As String strData =
"" With FileLists
For i =
0 To .Items.Count -
1 strData += .Items.Item(i).
Text + vbCrLf
Next End With Clipboard.SetDataObject(strData)
End SubEnd Class