一个简单的问题,关于CreateFile 发现CreateFile 创建文件的时候,如果文件路径不存在就会失败,一点也不智能, 有没有办法创建文件,如果路径不存在就自动创建路径,用CreateDirectory 也是必须一个一个的创建,如果路径不存在也失败 我现在要写个解包软件,所以最好可以自动创建文件路径 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 PathFileExists来判断文件路径是否存在,不行用MakeSureDirectoryPathExists创建! 这个是检查路径的,其实你可以用CreateFile来创建文件的后就用if(2 == GetLastError())那文件就不存在 是 SHCreateDirectoryEx 吧 SHCreateDirectory()可以强行创建多级目录,如果没有,就创建然后自己再判断文件是否存在,CreateFile等创建文件 我只是想这么常用的功能,可能已经提供好了才问一问~~SHCreateDirectory 或者(EX)版本的 都可以 只是必须绝对路径,不能是相对路径本身懒得自己写了,看到有人说写 于是就写了...int CreateDirectoryAlways(PCTSTR szFilePath){ TCHAR szTempPath[MAX_PATH]; if(_tcslen(szFilePath) > MAX_PATH) return FALSE; _tcscpy(szTempPath,szFilePath);//本身想用 _tcscpy_s 可是 不知道为何 此处调用这个函数会修改 szFilePath 的值.. 见鬼了 for(int i=0,j=0;szTempPath[i]!=0;++i) if(szTempPath[i] == TEXT('\\')) { szTempPath[i] = 0; CreateDirectory(szTempPath,NULL); szTempPath[i] = TEXT('\\'); } CreateDirectory(szTempPath,NULL); return GetLastError();} SHCreateDirectoryEx(NULL, _T("C:\\MyClientLog"), NULL); File _file; _file.Create(_T("C:\\MyClientLog\\20100719153322.txt"), GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ, OPEN_ALWAYS, NULL);首先调用SHCreateDirectoryEx函数,确保文件所在的目录是存在的,若不存在该函数会自动创建该目录,然后再创建文件就没问题了~ DirectShow添加Filter失败 ATL中使用SQLite3创建数据库,编译通过就是创建不出来 请问怎么调出这个对话框 关于激活响应, 如何在VC中将剪切板中的图像粘贴到EXCEL中 《Windows图形编程》中关于计算桢缓冲区RAM大小的问题。帮忙解答。 DBGrid 控件的使用 一个问题请教,关于多个IP的 有这样的一个小问题!!!!请赐教!!!! 纠结 VC编程中,WINDOWS系统如何分辨消息的归属,或者说WINDOWS应用程序如何获得(可以获得)哪些消息? 请熟悉const 和char的看看
是 SHCreateDirectoryEx 吧
然后自己再判断文件是否存在,CreateFile等创建文件
SHCreateDirectory 或者(EX)版本的 都可以 只是必须绝对路径,不能是相对路径
本身懒得自己写了,看到有人说写 于是就写了...
int CreateDirectoryAlways(PCTSTR szFilePath)
{
TCHAR szTempPath[MAX_PATH];
if(_tcslen(szFilePath) > MAX_PATH)
return FALSE;
_tcscpy(szTempPath,szFilePath);//本身想用 _tcscpy_s 可是 不知道为何 此处调用这个函数会修改 szFilePath 的值.. 见鬼了 for(int i=0,j=0;szTempPath[i]!=0;++i)
if(szTempPath[i] == TEXT('\\'))
{
szTempPath[i] = 0;
CreateDirectory(szTempPath,NULL);
szTempPath[i] = TEXT('\\');
}
CreateDirectory(szTempPath,NULL); return GetLastError();
}
SHCreateDirectoryEx(NULL, _T("C:\\MyClientLog"), NULL);
File _file;
_file.Create(_T("C:\\MyClientLog\\20100719153322.txt"),
GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ, OPEN_ALWAYS, NULL);
首先调用SHCreateDirectoryEx函数,确保文件所在的目录是存在的,若不存在该函数会自动创建该目录,然后再创建文件就没问题了~