簡體   English   中英

C#:如何檢索文件夾的描述?

[英]C#: How can I retrieve the description of a folder?

所有文件夾都具有一種類型:它們中的大多數都被命名為“文件文件夾”,但有些則被稱為“媒體服務器”或“本地硬盤驅動器”(翻譯)。 如何使用C#檢索那些文件夾類型? 我發現了以下文件: 如何獲取.NET中文件擴展名的描述

SHGetFileInfo是您需要的功能。 您需要將標志FILE_ATTRIBUTE_DIRECTORY作為參數傳遞給dwFileAttributes參數。

基於您鏈接相同答案,我修改了代碼以使其適用於目錄。

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;
}

每個文件夾中都有一個名為desktop.ini的文件,其中包含轉換后的文件夾描述和INI文件格式的文件夾圖標。 也許您需要閱讀。

我發現對於系統文件夾,它引用了系統DLL中的資源,因此它可能並不像看起來那樣簡單。

話雖如此,您也可以嘗試使用SHGetFileInfo函數來獲取該信息。


剛剛看到Sriram Sakthivel使用SHGetFileInfo給出了一個很好的答案,所以去吧。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM