前面的章节中已经讲了:设备监听、设备基本信息获取;
从这一章开始主要是讲一些我们最需要的功能,大概分为:
1、设备文件/文件夹;
2、设备相片;
3、设备应用程序;
4、设备音乐;
5、设备信息(短信、联系人);
以后有新的功能还会补充进来,由于每一个功能都不是一篇文章能够讲完的,都会分为几个小章节;
还有,这个系列的文章不是新手教程,只是给想做这一方面的同志们一份参考资料!
今天的这一章就是第一个功能的第一个小章节:获取设备文件信息
对应要讲的函数:
int AFCFileInfoOpen(HANDLE conn,char* path, HANDLE* data);
int AFCKeyValueRead(HANDLE data,HANDLE* key, HANDLE* value);
说明:
int AFCFileInfoOpen(HANDLE conn,char* path, HANDLE* data);
参数1:设备连接句柄;(不清楚的同志请参阅前面的章节内容)
参数2:设备文件路径参照 "/DCIM/100APPLE/IMG_0006.JPG";(是设备上的文件路径)
参数3:输出参数,返回数据的句柄,下一个函数需要用到;
返回值:0表示成功;
int AFCKeyValueRead(HANDLE data,HANDLE* key, HANDLE* value);
参数1:上个函数中的参数3;
参数2:输出参数;
参数3:输出参数;
返回值:0表示成功;
由于获取的文件信息是一个一个键值对,如 st_time = 198263546165;
所以我们需要一个链表结构保存文件信息:
typedef struct FileInfo{ char key[MAX_PATH]; char value[MAX_PATH]; FileInfo* next; } FI,*PFI;
下面是具体获取设备文件信息函数:
void GetFileInfomation(IOSFI* fi,char* path) { FI *fi1,*fi2; fi = NULL; fi1=fi2=(IOSFI *)malloc(sizeof(IOSFI)); HANDLE data; int ret = AFCFileInfoOpen(AFC,path,&data); if (ret ==0 && data!=NULL) { HANDLE hKey,hValue; hKey = hValue = NULL; while (AFCKeyValueRead(data,&hKey,&hValue)==0 &&hKey!=NULL && hValue!=NULL) { fi1=(FI *)malloc(sizeof(FI)); strcpy(fi->key,(char *)(hKey)); strcpy(fi->value,(char*)(hValue)); if (fi == NULL) fi = fi1; else fi2->next = fi1; fi2 = fi1; } } }
这样就获取到了设备上的文件基本信息,如创建时间,文件大小等等;
对了上面函数中有一个变量AFC是一个HANDLE变量,在下一篇文章中会讲到,是设备文件服务的一个句柄!
转载的人,请注明出处!谢谢!