mfc creatfile 问题?

YiYou_J 2017-10-07 05:25:15
BROWSEINFO bi;

ZeroMemory(&bi, sizeof(BROWSEINFO));
LPMALLOC pMalloc;
bi.lParam = (LPARAM)m_path.GetBuffer();
bi.hwndOwner = NULL;
bi.lpfn = BrowseCallbackProc;
bi.ulFlags = BIF_BROWSEINCLUDEFILES;

LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
TCHAR * path = new TCHAR[MAX_PATH];
{
if (pidl != NULL)

{
SHGetPathFromIDList(pidl, path);
m_path = path;
m_type = GetSuffix(m_path.GetBuffer());
m_space.Format(L"%s", FormatSize(GetSize(m_path)));
m_createtime = GetTime(m_path);


if (SUCCEEDED(SHGetMalloc(&pMalloc)))
{
pMalloc->Free(pidl);
pMalloc->Release();
}
}
}
delete path;
UpdateData(FALSE);


void CSelectFolderDlg::OnBnClickedButtonCreate()
{
CString FileName = m_path;
if(CreateFile(FileName, NULL, FILE_SHARE_READ/ FILE_SHARE_WRITE,NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0))
MessageBox(L"ok");
}

然后我在mfc界面上输入m_path代表的路径,却并没有按照我输入的路径创建文件啊,哪里出了问题啊!
...全文
240 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
brk1985 2017-10-17
  • 打赏
  • 举报
回复
调用GetLastError输出出错码,进而初步确定出错原因。
red-fly 2017-10-16
  • 打赏
  • 举报
回复
http://download.csdn.net/download/jszj/10024490 这是我的一个工具库,可以加入工程,在创建文件之前调用接口进行目录创建: CString FileName = m_path; wp_CreatePath(FileName.GetBuffer(0)); // 添加这一行 if(CreateFile(FileName, NULL, FILE_SHARE_READ/ FILE_SHARE_WRITE,NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0)) MessageBox(L"ok");
red-fly 2017-10-16
  • 打赏
  • 举报
回复
文件所在的目录要存在,即在创建文件之前,要确保它的目录存在,如果目录不存在,则要先创建目录
yokcyk 2017-10-16
  • 打赏
  • 举报
回复
是不是要把/换成 |
zgl7903 2017-10-11
  • 打赏
  • 举报
回复
GetLastError 看错误代码, 如果包含新的路径 得 CreateDirectory 或 CreateDirectoryEx 先创建目录
Eleven 2017-10-10
  • 打赏
  • 举报
回复
参考MSDN文档CreateFile
sumos 2017-10-10
  • 打赏
  • 举报
回复
HANDLE WINAPI CreateFile( _In_ LPCTSTR lpFileName, _In_ DWORD dwDesiredAccess, _In_ DWORD dwShareMode, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _In_ DWORD dwCreationDisposition, _In_ DWORD dwFlagsAndAttributes, _In_opt_ HANDLE hTemplateFile ); dwDesiredAccess指定类型的访问对象。如果为 GENERIC_READ 表示允许对设备进行读访问;如果为 GENERIC_WRITE 表示允许对设备进行写访问(可组合使用);如果为零,表示只允许获取与一个设备有关的信息 。 试试dwDesiredAccess设置为GENERIC_WRITE| GENERIC_READ 另外,在CreateFile失败后调用GetLastError();断点看返回值是什么错误码
oyljerry 2017-10-10
  • 打赏
  • 举报
回复
你看看你创建的路径是不是有问题,\\注意要双斜杠修饰

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧