用CFileDialog打开一个文件后,该文件的文件夹无法手动删除,
例如:文件夹c:\temp 下有个文件1.txt,现在我使用CFileDialog打开了这个1.txt,操作完了,这时我想手动修改c:\temp的名称例如改为c:\tmp
这个操作不可行,只有推出程序才能对该文件夹操作,现在我并不想退出任何程序,但是想解除对c:\temp的锁定。
例如:文件夹c:\temp 下有个文件1.txt,现在我使用CFileDialog打开了这个1.txt,操作完了,这时我想手动修改c:\temp的名称例如改为c:\tmp
这个操作不可行,只有推出程序才能对该文件夹操作,现在我并不想退出任何程序,但是想解除对c:\temp的锁定。
{
CFileDialog dlgPage(TRUE, _T("*.txt"), NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
_T("(*.txt files)|*.txt| \n(All files)|*.*||"), NULL);
if(dlgPage.DoModal() == IDOK)
{
.......
}
}
程序完了。如果我打开了:文件夹c:\temp下有一个文件1.txt。如果程序不关闭,我无法对文件夹c:\temp进行其他操作。
CFileDialog只是让你选择文件,并没有打开这个文件啊。
是你的......在打开选择的文件。
CFileDialog dlgFile(...);
dlgFile.m_ofn.lpstrInitialDir = "Your Dir"; //此处更改文件夹路径
_T("(*.txt files)|*.txt| \n(All files)|*.*||"), NULL);
if(dlgPage.DoModal() == IDOK)
{
CString yourFileName=dlgPage.GetPathName();
CFile::Remove(yourFileName);
}
用过CFileDlg之后,用::SetCurDir();就可以了。