📄 filemetadata.cpp
字号:
#include "fileMetadata.h"#include <iostream>#include <string>#include <sstream>using namespace std;string int2str(int &i){ string s; stringstream ss(s); ss << i ; return ss.str();}fileMetadata::fileMetadata(char* pathname){ fileResult = NULL; ErrMsg = NULL; db = NULL; int rc = sqlite3_open(pathname,&db); if( rc ) { cout << "can't open database :" << sqlite3_errmsg(db) << endl; sqlite3_close(db); exit(1); } else cout << "your have opened a sqlite3 database " << endl; string sql = "CREATE TABLE fileMetadata(fileName VARCHAR(20),fileTime VARCHAR(10),fileSize INTEGER);"; sqlite3_exec(db,sql.c_str(),0,0,&ErrMsg);}void fileMetadata::insertMetadata(char *fileName,char* fileTime,int fileSize){ string sql ="INSERT INTO \"fileMetadata\" VALUES("; sql = sql +"'"+ fileName + "','" + fileTime + "',"+ int2str(fileSize)+");"; cout << sql << endl ; sqlite3_exec(db,sql.c_str(),0,0,&ErrMsg);}void fileMetadata::deleteMetadata(char* fileName){ string sql = "DELETE FROM fileMetadata WHERE fileName ="; sql = sql + fileName + " ;"; cout << sql << endl ;}char** fileMetadata::getAllMetadata(int& nrow,int& ncolumn){ fileResult = NULL ; nrow =0,ncolumn = 0; string sql = "SELECT * FROM fileMetadata"; sqlite3_get_table(db,sql.c_str(),&fileResult,&nrow,&ncolumn,&ErrMsg); return fileResult;}bool fileMetadata::upLoadMetadata(char *fileName,char* fileTime,int fileSize){ int nrow =0,ncolumn = 0; string sql = "SELECT * FROM fileMetadata"; sqlite3_get_table(db,sql.c_str(),&fileResult,&nrow,&ncolumn,&ErrMsg); for(int i=3;i<(nrow+1)*ncolumn;i+=3) { if(!strcmp(fileResult[i],fileName)) { cout << "the fileName is exist" << endl; return false; } } insertMetadata(fileName,fileTime,fileSize); return true;}bool fileMetadata::downLoadMetadata(char* fileName){ string sql = "SELECT * FROM fileMetadata"; int nrow =0,ncolumn =0; sqlite3_get_table(db,sql.c_str(),&fileResult,&nrow,&ncolumn,&ErrMsg); for(int i=3;i<(nrow+1)*ncolumn;i+=3) { if(!strcmp(fileResult[i],fileName)) { return true; } } return false;}char** fileMetadata::getFileMetadata(char* fileName){ int nrow =0,ncolumn = 0; string sql = "SELECT * FROM fileMetadata"; sqlite3_get_table(db,sql.c_str(),&fileResult,&nrow,&ncolumn,&ErrMsg); cout << nrow <<" "<<ncolumn << endl; for(int i=3;i<(nrow+1)*ncolumn;i+=3) { if(!strcmp(fileResult[i],fileName)) return &fileResult[i]; }}fileMetadata::~fileMetadata(){ if(fileResult != NULL) sqlite3_free_table(fileResult); if(db != NULL ) sqlite3_close(db); ErrMsg = NULL ;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -