hur.cn - 华软网

 热门搜索

CFile类问题,在线等......

  作者:未知    来源:网络    更新时间:2011/1/12
CFile  file;
if(file.Open(strfilePath, CFile::modeCreate|CFile::modeWrite|CFile::shareExclusive))
 {  
    //永远前往是FALSE
}

说明:
strfilePath是一个路径,其中资料夹的路径存留,但资料不存留,致使上面的if前往false,该怎样修改,当不存留资料时创建呢?
---华软 网友回答---
改成file.create
---华软网友回复---
你去掉CFile::shareExclusive再试试
---华软网友回复---
引用 1 楼 wangbo56916860 的回复:
改成file.create

CFile里面没有Create把?
---华软网友回复---
我刚试过没问题,你看看strfilePath是否是有误,比如少了转义字符:"d:\a.txt",应该是:"d:\\a.txt"
或用了相对路径
---华软网友回复---
引用 2 楼 xianglitian 的回复:
你去掉CFile::shareExclusive再试试


起头就没有这个,就不行  永远没有进入if里面
---华软网友回复---
C++">	CFile file;
if(file.Open("D:\\ee.txt", CFile::modeCreate|CFile::modeWrite|CFile::shareExclusive))
{
//int i = 0;
}

这样试试
---华软网友回复---
看看毛病是什么
C++">
try
{
CFile file;
if(file.Open(strfilePath, CFile::modeCreate|CFile::modeWrite|CFile::shareExclusive))
 {   
  //永远前往是FALSE
 }
 ...
}
catch(CFileException* e)
{
 e->ReportError();
 e->Delete();
}

---华软网友回复---
错了,没有create。其余api习气open 和 create 了。
CFile::modeNoTruncate
---华软网友回复---
open成功前往非0,失利前往0

CFile file;
if(!file.Open(strfilePath, CFile::modeCreate|CFile::modeWrite|CFile::shareExclusive))
 {   
   //失利
  //永远前往是FALSE
}

你不觉得应该这样判断吗?
---华软网友回复---
HANDLE hFile = CreateFle(FileName,GENERIC_WRITE,FILE_SHARE_READ,NUL,
CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile != INVALIDATE_HANDLE_VALUE)
{
  CFile myFile(fFile);
}
---华软网友回复---
引用 4 楼 varding 的回复:
我刚试过没问题,你看看strfilePath是否是有误,比如少了转义字符:"d:\a.txt",应该是:"d:\\a.txt"
或用了相对路径


我用的是相对路径,但有的就能够创建,这个就不能  

看了strfilePath和成功的没有区别
---华软网友回复---
引用 7 楼 visualeleven 的回复:
看看毛病是什么

C/C++ code

try
{
CFile file;
if(file.Open(strfilePath, CFile::modeCreate|CFile::modeWrite|CFile::shareExclusive))
 {   
  //永远前往是FALSE
 }
 ...
}
catch(CFileException* e)
{
 e-……


if(file.Open(strfilePath, CFile::modeCreate|CFile::modeWrite, &e))
e.m_cause = 3
---华软网友回复---
引用 6 楼 varding 的回复:
C/C++ code
    CFile file;
    if(file.Open("D:\\ee.txt", CFile::modeCreate|CFile::modeWrite|CFile::shareExclusive))
    {
        //int i = 0;
    }

这样试试


我的这个代码你能成功吗?如果能成功应该就是路径问题了
---华软网友回复---
strfilePath.Format(_T("%s\\Picture\\111.RL"), m_strfilePath/*, m_strReadData*/);
这样就能够创建进去
strfilePath.Format(_T("%s\\Picture\\%s"), m_strfilePath , m_strReadData);
就不行
m_strReadData = _T("111.RL");

郁闷呀!
---华软网友回复---

CString strfilePath,m_strReadData,m_strfilePath;
m_strReadData = _T("111.RL");
m_strfilePath = _T("C:\\");
strfilePath.Format(_T("%s\\%s"), m_strfilePath , m_strReadData);
CFile file11;
if (file11.Open(strfilePath,CFile::modeWrite|CFile::modeCreate))
{
MessageBox("dg");
}

这样木有问题啊
---华软网友回复---
if(!lg->file.Open(tempdir,CFile::modeReadWrite|CFile::shareDenyNone))     
{
lg->file.Open(tempdir,CFile::modeCreate|CFile::modeWrite|CFile::shareDenyNone);     
}
---华软网友回复---
CString直接相加得新的字符串多好
---华软网友回复---
引用 15 楼 tigermaydo 的回复:
C/C++ code

CString strfilePath,m_strReadData,m_strfilePath;
    m_strReadData = _T("111.RL");
    m_strfilePath = _T("C:\\");
    strfilePath.Format(_T("%s\\%s"), m_strfilePath , m_strReadData);……

试了确实没有问题
我重新说一下把

BYTE byRecv[MAX_PATH] = {0};
DWORD dwRecv = m_SocketManager.ReadComm( byRecv, 20000, INFINITE);//读出来一个byRecv
CString strRead(byRecv);   //strRead获得字符串(资料名称)里面有"'"
strRead.Replace(_T("'"),_T(""));//替换了
strfilePath.Format(_T("%s\\Picture\\%s"), m_strfilePath, strRead);
再CFile就没有Open成功

是否是和Unicode和ASCII编码有关
---华软网友回复---
引用 18 楼 qiuxin425 的回复:
引用 15 楼 tigermaydo 的回复:
C/C++ code

CString strfilePath,m_strReadData,m_strfilePath;
m_strReadData = _T("111.RL");
m_strfilePath = _T("C:\\");
strfilePath.Format(_T("%s\\%s"), m_strfilePath , m……

单步跟一下,把strfilePath内容贴出来让大家帮你看看

---华软网友回复---
这样很麻烦。。
strfilePath = m_strfilePath + "\\Picture\\" + strRead;
---华软网友回复---
引用 19 楼 varding 的回复:
引用 18 楼 qiuxin425 的回复:

引用 15 楼 tigermaydo 的回复:
C/C++ code

CString strfilePath,m_strReadData,m_strfilePath;
m_strReadData = _T("111.RL");
m_strfilePath = _T("C:\\");
strfilePath.Format(_T("%s……


strfilePath的内容
D:\vs2010 Code\TKToolBox\Debug\Picture\35.DRL
---华软网友回复---
引用 20 楼 liln0530 的回复:
这样很麻烦。。
strfilePath = m_strfilePath + "\\Picture\\" + strRead;


这样也不行  

我在想是否是没有把strRead里面的.以为是扩展名的标志  
我看毛病代码好像是无效的路径
---华软网友回复---
应该是strfilePath有问题,调试看一下这个路径写法是否正确
---华软网友回复---
引用 23 楼 pjl1119 的回复:
应该是strfilePath有问题,调试看一下这个路径写法是否正确


就是那个.引起来的,谢谢大家!      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。