请求帮助:C 使用 WIN32 API 编写一个"新建文件(夹)"的小程序
以下是在控制台下的简陋实现,不会GUI编程,想看下GUI的代码,纯C WIN32 API的。
请高手给个范例,最好有检测非法文件名之类的功能。
程序代码:
#include <stdio.h>
#include <direct.h>
int main(void) {
char UTF8_header[3] = {0xef, 0xbb, 0xbf}; //UTF-8 file header
char UTF16LE_header[2] = {0xff, 0xfe}; //UTF-16LE file header
int n;
char filename[300];
printf("新文件(夹)名为: \n");
scanf("%s", filename);
printf("输入的新文件(夹)名为: %s\n", filename);
printf("请输入新建文本文件选项:\n\
\t1): 新建 ANSI 空文本文件\n\
\t2): 新建 UTF-8 BOM 空文本文件\n\
\t3): 新建 UTF-16LE BOM 空文本文件\n\
\t4): 新建文件夹\n");
scanf("%d", &n);
switch(n) {
case 1:
printf("生成 ANSI 编码的文本文件...\n");
FILE *fp_ansi = fopen(filename, "wb+");
fclose(fp_ansi);
break;
case 2:
printf("生成 UTF-8 BOM 编码的文本文件...\n");
FILE *fp_utf8 = fopen(filename, "wb+");
fwrite(UTF8_header, sizeof(char), 3, fp_utf8);
fclose(fp_utf8);
break;
case 3:
printf("生成 UTF-16LE BOM 编码的文本文件...\n");
FILE *fp_utf16 = fopen(filename, "wb+");
fwrite(UTF16LE_header, sizeof(char), 2, fp_utf16);
fclose(fp_utf16);
break;
case 4:
printf("生成文件夹...\n");
_mkdir(filename);
break;
default:
printf("取消...\n");
}
return 0;
}
VS2010的工程打包



