首页建站createfile失败(createfile调用失败)

createfile失败(createfile调用失败)

编程之家2024-01-3086次浏览

一、vc函数GetFileTime获取文件夹的访问时间时问题

通常,文件、文件夹的时间属性指的是创建时间、最近访问时间和最近修改时间等几个具体属性。对于文件的上述属性可以通过GetFileTime()来获取,对于文件夹,在通过CreateFile()函数将其打开后,其获取得到的句柄可以当作文件句柄来使用。因此,通过GetFileTime()函数同样也可以得到文件夹的时间属性。GetFileTime()函数原型如下:

createfile失败(createfile调用失败)

BOOLGetFileTime(

HANDLE hFile,//文件句柄

LPFILETIME lpCreationTime,//创建时间的地址

LPFILETIME lpLastAccessTime,//最近访问时间的地址

LPFILETIME lpLastWriteTime//最近修改时间的地址

);

createfile失败(createfile调用失败)

其中后三个参数均是指向FILETIME结构的指针,得到的也都是UTC时间,如果需要,可以通过FileTimeToLocalFileTime()函数将此UTC时间转化成本地时间。而且还可以进一步通过FileTimeToSystemTime()函数将其从文件时间格式转化成系统时间格式,转化后的时间格式将保存在一个SYSTEMTIME结构对象中。类似的,在将时间信息写入到文件夹属性时,如果不是文件时间格式也应当通过SystemTimeToFileTime()函数将其从系统时间格式转换成文件时间格式,然后再通过SetFileTime()函数将指定的时间写入到文件夹的时间属性中去。这样,在进行数据备份和恢复的过程中,包括根目录在内的所有文件夹都可以保持时间属性的一致。

//获取指定文件夹的时间属性,入口参数DirName指定了待处理的文件夹,

//stime为一指向SYSTEMTIME结构的指针

BOOLCSetForderTimeDlg::GetDirTime(CString DirName, SYSTEMTIME&stime){

//打开文件夹

HANDLE hDir= CreateFile(DirName,GENERIC_READ,

createfile失败(createfile调用失败)

FILE_SHARE_READ|FILE_SHARE_DELETE,

NULL, OPEN_EXISTING,

FILE_FLAG_BACKUP_SEMANTICS, NULL);

FILETIME lpCreationTime;//文件夹的创建时间

FILETIME lpLastAccessTime;//对文件夹的最近访问时间

FILETIME lpLastWriteTime;//文件夹的最近修改时间

//获取文件夹时间属性信息

if(GetFileTime(hDir,&lpCreationTime,&lpLastAccessTime,&lpLastWriteTime)){

FILETIME ftime;

FileTimeToLocalFileTime(&lpLastWriteTime,&ftime);//转换成本地时间

FileTimeToSystemTime(&ftime,&stime);//转换成系统时间格式

}

CloseHandle(hDir);//关闭打开过的文件夹

return retval;

}

//设置指定文件夹的时间属性,入口参数DirName指定了待处理的文件夹,

//new_time为一指向SYSTEMTIME结构的指针

BOOLCSetForderTimeDlg::SetDirTime(CString DirName, SYSTEMTIME new_stime){

//打开目录的Win32 API调用

HANDLE hDir= CreateFile(DirName,GENERIC_READ|GENERIC_WRITE,

FILE_SHARE_READ|FILE_SHARE_DELETE,

NULL, OPEN_EXISTING,

FILE_FLAG_BACKUP_SEMANTICS, NULL);

FILETIME lpCreationTime;//文件夹的创建时间

FILETIME lpLastAccessTime;//对文件夹的最近访问时间

FILETIME lpLastWriteTime;//对文件夹的最近修改时间

SystemTimeToFileTime(&new_stime,&lpCreationTime);//转换成文件时间格式

SystemTimeToFileTime(&new_stime,&lpLastAccessTime);

SystemTimeToFileTime(&new_stime,&lpLastWriteTime);

CloseHandle(hDir);//关闭文件夹

return retval;

}

二、IoGetDeviceObjectPointer打开串口失败

楼主发表于:2010-01-04 09:51:30

请教各位:

我在wince6.0下面在打开com口的时候(CreateFile())提示失败.我用的是ENFORA的例子.在BIB和REG文件里面都已经添加了模拟器对应文件下面的一些命令.但是在烧完OS后正常加载RIL的过程中,从TRACE信息显示如下:

RILDrv: E: CComHandle::OpenDownstreamPort: Couldn't open downstream port

RILDrv: E: RIL_Init: RIL failed to initialize

因为我使用的是ENFORA,在RILMDD部分的Comhandle中查找的是注册表的ComPort和ComPortNotifications两个.我查看IMGENFORA的时候发现只有ComPort而且对应的分别如下:

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\RIL]

"Dll"="rilgsm.dll"

;DEVFLAGS_LOADLIBRARY 0x00000002// Use LoadLibrary instead of LoadDriver

"Flags"=dword:2

"Index"=dword:1

"Order"=dword:3

"Prefix"="RIL"

"ComPort"="COM7:"

"RebootOKEvName"="Mux0710_RebootOK"; name of the event used to signal reboot OK

"RebootKOEvName"="Mux0710_RebootKO"; name of the event used to signal reboot failure

; COM1 for underlying GSM 07.10

[HKEY_LOCAL_MACHINE\Software\Microsoft\GSM07_10]

"ComPort"="COM1:"

"BaudRate"=dword:1C200; 115200

"FrameOption"=dword:1; Advanced

而ComPortNotifications根本在IMGENFORA里面没有,如果找不到ComHandle会默认拿Com2来CreateFile。

我现在是拿target的串口来作为连接modem的口。

请问各位我到底需要怎么样来调整我的Com口。使得数据可以正确的传输。谢谢!

#1楼得分:0回复于:2010-01-04 09:56:38

是否Software\Microsoft\GSM07_10对应的COM1表示的是RIL的抽象COM7\9对应的真实地物理串口?谢谢!

#2楼得分:0回复于:2010-01-04 10:18:58

根据你的注册表,打开的时候createfile应该用的是RIL1。

#3楼得分:0回复于:2010-01-04 10:46:12

也就是说是COM7这个虚拟口?

那我要如何与串口对应上(通过0710?)?

为什么我的Com7会打不开呢?谢谢!

#4楼得分:0回复于:2010-01-04 11:40:01

如果要使用ENFORA驱动(内部已经修改为对应Modem指令/)。我需要将如下三个环境变量设置成1吗?

IMGFAKERIL= IMGTTPCOM= IMGENFORA=1

我不需要用TTPCOM是否也需要设置IMGTTPCOM=1???IMGFAKERIL呢?

启动ENFORA是否也需要启动710Mux,如是该如何启动呢?谢谢!

#5

ntsd.exe(ntsd.exe 附使用教程 )query.uniqueresult(hibernate中的query.uniqueResult)