c# - DirectoryInfo.GetFiles() 不返回桌面上的所有文件(不包括快捷方式)

标签 c# .net directoryinfo getfiles

我有一个 listBox1 应该显示桌面上的所有文件,我使用了以下方法来执行此操作

string filepath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
DirectoryInfo path = new DirectoryInfo(filepath);

foreach (var file in path.GetFiles())
{
    listBox1.Items.Add("File : " + file.Name);
}

它可以工作,但由于某种原因它不显示某些快捷方式,它显示一些快捷方式,但大多数都没有显示。我不知道为什么会发生这种情况

最佳答案

您可能缺少“所有用户”桌面中的快捷方式:

string filepath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
DirectoryInfo path = new DirectoryInfo(filepath);

foreach (var file in path.GetFiles())
{
    listBox1.Items.Add("File : " + file.Name);
}

//  Get files in the "common" desktop
filepath = Environment.GetFolderPath(Environment.SpecialFolder.CommonDesktopDirectory);
path = new DirectoryInfo(filepath);

foreach (var file in path.GetFiles())
{
    listBox1.Items.Add("File : " + file.Name);
}

如果可行的话,您可以重构以组合公共(public)代码。

关于c# - DirectoryInfo.GetFiles() 不返回桌面上的所有文件(不包括快捷方式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19932222/

相关文章:

c# - 搜索目录中的所有文件时显示进度

c# - 为什么 Microsoft 建议跳过为引用类型实现相等运算符?

c# - 滚动到 CheckedListBox 中的第一个选中项

c# - 使用 Moq-Mock 库时发现不明确的匹配异常

c# - 使用 C# LINQ 按任一列分组

c# - 您的 SQL 语法有错误,请检查与您的 MariaDB 服务器版本相对应的手册,以了解在“[Id]”附近使用的正确语法

c# - 一律取消task.delay还是用exception来控流?

c# - 对于从 IEnumerable<T> 继承的 .Net 类,为什么 GetEnumerator 在 COM 中不可见?

c# - 路径中的 @"../.."是什么意思?

C# 访问路径 'C:\Documents and Settings\' 被拒绝