使用Environment.GetFolderPath(Environment.SpecialFolder.Personal)的意外目录

时间:2011-08-18 01:16:54

标签: vb.net

我正在使用以下内容获取Windows 7中“我的文档”文件夹的路径并遍历其目录:

Dim diri As New DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.Personal))
For Each diri In diri.GetDirectories
 MessageBox.Show(diri.Name)
Next

我得到的一个消息框是“我的音乐”文件夹。我的“我的文档”文件夹中没有该文件夹。

这是预期的行为吗?

2 个答案:

答案 0 :(得分:3)

是。名为“我的音乐”的“文档”文件夹中有一个隐藏链接,链接到“音乐”文件夹。 “图片”和“视频”也有类似的内容。这些用于与生产不良的Windows XP软件向后兼容,后者硬编码到这些文件夹的路径,而不是像你一样使用系统定义的设置。

要查看所有这些链接,请在命令提示符下键入:

Dir /AL %UserProfile%\Documents

答案 1 :(得分:0)

使用以下内容获取非隐藏目录

Dim diri As New DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.Personal))
For Each diri In diri.GetDirectories
 If(dir.Attributes = FileAttributes.Directory) Then 
   MessageBox.Show(diri.Name)
 End If
Next