C++设置文件夹图标

 1 #include <iostream>
 2 #include <string>
 3 #include <windows.h>
 4 
 5 using namespace std;
 6 
 7 int main(int argc, char *argv[])
 8 {
 9     if(argc != 3)        // 判断参数个数,若小于 3 则输出提示
10     {
11         printf("\t\t**************************************\n");
12         printf("\t\t\tSetDirIcon By Hoy0a1d.\n");
13         printf("\t\t\tUsage:%s DirPath IconPath\n", argv[0]);
14         printf("\t\t**************************************\n");
15     }
16     else
17     {
18         // 判断需要设置的文件夹是否存在
19         if(GetFileAttributes(argv[1]) != INVALID_FILE_ATTRIBUTES)
20         {
21             // 判断 ico 文件是否存在
22             if(GetFileAttributes(argv[2]) != INVALID_FILE_ATTRIBUTES)
23             {
24                 char iniPath[MAX_PATH] = "";
25                 char icoPath[MAX_PATH] = "";
26                 // 在需要设置的文件夹下新建 desktop.ini
27                 strcat(iniPath, argv[1]);
28                 strcat(iniPath, "\\desktop.ini");
29                 // 将 ico 文件复制到文件夹下命名为 icon.ico
30                 strcat(icoPath, argv[1]);    
31                 strcat(icoPath, "\\icon.ico");
32                 // 复制文件,覆盖已有
33                 CopyFile(argv[2], icoPath, FALSE);
34                 // 设置 icon.ico 文件属性为隐藏
35                 SetFileAttributes(icoPath, FILE_ATTRIBUTE_HIDDEN);
36                 /* BOOL WritePrivateProfileString(
37                     LPCTSTR lpAppName,    // INI文件中的一个字段名[节名]
38                     LPCTSTR lpKeyName,  // lpAppName 下的一个键名
39                     LPCTSTR lpString,   // 键值
40                     LPCTSTR lpFileName  // INI文件的路径
41                 ); */
42                 if(WritePrivateProfileString(".ShellClassInfo", "IconResource", "icon.ico", iniPath) == true)
43                 {
44                     // 设置 desktop.ini 文件属性为系统+隐藏
45                     SetFileAttributes(iniPath, FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
46                     printf("Folder icon setting success!\n");
47                 }
48                 else
49                     printf("Folder icon setting failed!\n");
50             }
51             else
52                 printf("ICO files do not exist.\n");
53         }
54         else
55             printf("Folders do not exist.\n");
56     }
57     return 0;
58 }

猜你喜欢

转载自www.cnblogs.com/hoy0a1d/p/9258884.html