package com.softwinner.TvdFileManager;
import java.io.File;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Environment;
import android.util.Log;
public class ImageDatabase
{
private static final String APP_DIR_NAME = ".fileManager";
private String APP_DIR;
private static final String DB_NAME = "fileManager.db";
private static final String IMAGE_TABLE = "image";
public static final String ORIG_PATH = "orignalPath";
public static final String THUMB_PATH = "thumbPath";
public static final String CREATE_TIME = "created_time";
public static final String KEY_ID = "_id";
public static final String KEY_NAME = "name";
public static final String TABLE_CREATE = "CREATE TABLE IF NOT EXISTS " + IMAGE_TABLE
+ " (" + ORIG_PATH + " TEXT," + THUMB_PATH + " TEXT," + CREATE_TIME + " INTEGER)";
private SQLiteDatabase imageDatabase;
private Context mContext;
private String TAG = "ImageDatabase";
public ImageDatabase(Context context)
{
mContext = context;
init();
APP_DIR = mContext.getDir(APP_DIR_NAME, 0).getAbsolutePath();
}
public String getAppDir()
{
return APP_DIR;
}
/* Ϊ�˷�ֹ���ļ����ʱ����������ɾ�������ļ��������ݣ��������ݿ���ʴ���ÿ�β���ǰ��Ҫ���г�ʼ�� */
private void init()
{
File dir = mContext.getDir(APP_DIR_NAME, 0);
File dbFile = new File(dir, DB_NAME);
String dbPath = dbFile.getAbsolutePath();
if(imageDatabase == null)
{
createDB(dbPath);
}
else
{
if(!dbFile.exists())
{
createDB(dbPath);
}
}
}
private void createDB(String path)
{
//��ָ����ͼƬ���ݿ�
imageDatabase = SQLiteDatabase.openOrCreateDatabase(path, null);
imageDatabase.execSQL(TABLE_CREATE);
Log.d(TAG, "open database success");
}
/**
* ����һ������
* @param origPath :ԴͼƬ�ļ�·��
* @param thumbPath :����ͼ�ļ�·��
*/
public void insert(String origPath, String thumbPath)
{
init();
File thumb = new File(thumbPath);
long time = thumb.lastModified();
ContentValues cv = new ContentValues();
cv.put(ORIG_PATH, origPath);
cv.put(THUMB_PATH, thumbPath);
cv.put(CREATE_TIME, time);
imageDatabase.insert(IMAGE_TABLE, null, cv);
}
/**
* ɾ�����ݿ���Դ�ļ�·�����ڵ�����
* @param origPath
*/
public void delete(String origPath)
{
init();
String[] args = {origPath};
String clause = ORIG_PATH + "=?";
imageDatabase.delete(IMAGE_TABLE, clause, args);
}
/**
* ��ѯ���ݿ��е�ͼƬ��Ϣ
* @param columns :��ѯ����
* @param selection :����
* @param selctionArgs
* @param orderBy :��������
* @return
*/
public Cursor query(String[] columns, String selection,
String[] selectionArgs, String orderBy)
{
init();
Cursor c = null;
try
{
c = imageDatabase.query(IMAGE_TABLE, columns, selection, selectionArgs, null, null, orderBy);
}
catch(IllegalStateException e)
{
Log.e(TAG, "database not open");
}
return c;
}
public void closeDatabase()
{
imageDatabase.close();
}
}