所有文件夹都有一个类型:它们中的大多数都被命名为“文件夹”,但有些被称为“Mediaserver”或“本地硬盘”(翻译)。如何使用C#检索这些文件夹类型? 我在文件中找到了这个:How can I get the description of a file extension in .NET
答案 0 :(得分:14)
SHGetFileInfo是您需要的功能。您需要将标记FILE_ATTRIBUTE_DIRECTORY
作为参数传递给dwFileAttributes
参数。
基于same answer you linked我修改了代码以使其适用于目录。
public static string GetFileFolderTypeDescription(string fileNameOrExtension)
{
SHFILEINFO shfi;
if (IntPtr.Zero != SHGetFileInfo(
fileNameOrExtension,
FILE_ATTRIBUTE_NORMAL | FILE_ATTRIBUTE_DIRECTORY,
out shfi,
(uint)Marshal.SizeOf(typeof(SHFILEINFO)),
SHGFI_USEFILEATTRIBUTES | SHGFI_TYPENAME))
{
return shfi.szTypeName;
}
return null;
}
答案 1 :(得分:5)
每个文件夹中都有一个名为desktop.ini
的文件,其中包含INI文件格式的文件夹的翻译文件夹描述和图标。也许你需要阅读它。
我发现对于系统文件夹,这会引用系统DLL中的资源,所以它可能不像看起来那么简单。
话虽如此,您也可以尝试使用SHGetFileInfo函数来获取该信息。
刚才看到Sriram Sakthivel使用SHGetFileInfo
给出了一个非常好的答案,所以请继续。