如何在C# WPF中列出目录中的文件

3

我需要获取文件列表,但不包括目录名称和文件扩展名。

C:\ProgramData\Microsoft\Windows\Start Menu\Programs

例如:C:\ProgramData\Microsoft\Windows\Start Menu\Programs\7-Zip\7-Zip File Manager.lnk (X)

7-Zip 文件管理器 (O)

并将这些文件列在 Listbox 中。

如果在 listbox 中选择文件名,我还必须检索图标并启动程序。

就像这样:

http://www.c-sharpcorner.com/UploadFile/7e39ca/display-start-menu-in-windows-8/Images/Start-Menu-Windows8.jpg

有人可以帮帮我吗?

谢谢。

1个回答

4

使用Path.GetFileNameWithoutExtension获取文件名

string fileName = Path.GetFileNameWithoutExtension("C:\ProgramData\Microsoft\Windows\Start Menu\Programs\7-Zip\7-Zip File Manager.lnk);

要在列表框中列出图标,请查看WPF ListView类。您需要在XAML中定义模板以显示图像:

<ListView>
    <ListView.Resources>
        <DataTemplate x:Key="IconTemplate">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"/>
                </Grid.ColumnDefinitions>
                <Image Grid.Column="0"/>
                <TextBlock Grid.Column="1" Text="{Binding Name}"/>
            </Grid>
        </DataTemplate>
    </ListView.Resources>            
    <ListView.View>     
        <GridView>
            <GridViewColumn CellTemplate="{StaticResource IconTemplate}" Header="Name"/>
            <GridViewColumn DisplayMemberBinding="{Binding FileName}" Header="File Name"/>                   
        </GridView>
    </ListView.View>
</ListView>

要从文件中提取图标,您可以使用 System.Drawing 命名空间中的 ExtractAssociatedIcon:

Icon icon = Icon.ExtractAssociatedIcon(filePath);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接