⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filelistengine.h

📁 symbian 的文件保密软件,可以把文件设置为私有或者还原为公共,私有时,别人没有权限是看不到的,还可以参照您的需求或建议为您定制软件.
💻 H
字号:
/*
*======================================================== 
*  文件名	: FileListEngine.h
*  功能  	: 对文件列表的数据进行处理.打开文件夹,并把其中的文件列在LISTBOX中
*			  其中包括对文件的按时间先后进行排序,保存文件的大小,文件名,绝对路
*			  径和修改时间
*  创建 	: 11/11/2006 chenqing
*  说明		:
*  项目     : Netfrog    
*  版本 	: 1.0
*  版权		: 深圳千寻网有限公司
*=========================================================
*/

#ifndef _FILELISTENGINE_H_
#define _FILELISTENGINE_H_

#define FILENAMELEN		50
#define PATHLEN			80
#define FOLDERLENG		30

#include <e32base.h>
#include <coecntrl.h>
#include <f32file.h>        // for CDir Link against: efsrv.lib  
#include <badesca.h>        // for CDesCArray Link against: bafl.lib 
#include <apmstd.h>         // for TDataType

#include "localrsgfile.h"


class RFs;
class CGAImageEngine;

//保存文件的修改时间,文件名,全路径和文件大小
struct FILEARRAY
{
public:
	TTime		iTime;		//文件的修改时间
	HBufC*		iName;		//文件名
	HBufC*		iPath;		//文件存储路径
	TInt		iSize;		//文件大小		
	FILEARRAY*	iNext;		//下一个文件的指针

public:
	FILEARRAY()				//初始化数值
	{
		iTime = 0;			
		iSize = 0;
		iName = HBufC::NewL(FILENAMELEN);
		CleanupStack::PushL(iName);
		iPath = HBufC::NewL(PATHLEN);
		CleanupStack::Pop();
		iNext  = NULL;
	}

	~FILEARRAY()
	{
		//因为在堆里分配内存,必须要释放
		if(iName)
		{
			delete iName;
			iName = NULL;
		}
		if(iPath)
		{
			delete iPath;
			iPath = NULL;
		}
	}
};


class CGAFileListEngine  : public CCoeControl
{
public:
	CGAFileListEngine();
	//void ConstructL();
	virtual ~CGAFileListEngine();

public:
	//	清除LISTBOX中的所有文件列表
	void	CleanFileList();
	//把C盘和E盘指定文件夹下的所有文件放在链表中
	void	InitFileList(TInt aFolder);
	//得到当前LISTBOX ITEM文件的路径
	const	TDesC&	GetFilePathByItem(TInt aIndex);
	//得到当前LISTBOX ITEM文件的名子
	const	TDesC&	GetFileNameByItem(TInt aIndex) const;
	//得到指定文件夹下所包含文件的个数
	static	TInt	GetFileCountL(TInt aDirectory);
	//设置LISTBOX的Text array
	void	InitTextArrayL(CDesC16Array& aTextArray);
	//设置ListBox的Icon array
	void	InitIconArrayL(CArrayPtr<CGulIcon>* aIconArray);
	//设置文件夹:video,image,music和other
	void	SetFolder(TInt aFolder);

	//删除选中的文件
	void	DeleteFileL(TInt aIndex,const TDesC& aPath);
	//修改选中的文件名
	TBool	RenameFileL(TInt aIndex,const TDesC& aFileName);
	//得到文件修改时间
	TTime	GetFileModifiedTime(TInt aIndex);
	//得到文件的大小
	TInt	GetFileSize(TInt aIndex);
	//生成一个默认的图标
	CGulIcon*	ErrorDefaultIcon();

private:
	enum EDiskS
	{	
		CDisk = 0,		// C盘
		EDisk			// E盘
	};

private:
	//把文件信息添加到链表中,储存该文件信息
	void	AppendFileList(FILEARRAY* aItem);
	//设置磁盘.C盘:EDisk,E盘:EDisk
	void	SetDisk(EDiskS aDisk);
	//读出指定磁盘某一个文件夹的信息,包含文件的个数和其它
	TBool	ReadFolderInfoL();
	//读出某一个文件夹下的所有文件
	TBool	ReadFileListL();


private:
	RFs				iFsSession;			//打开文件夹时所要的文件服务器
	EDiskS			iDisk;				//指C盘或E盘.
	TInt			iFolder;			//文件夹:video,music,image and other 之一
	CDir*			iDiskList;			//文件夹信息
	FILEARRAY*		iListHead;			//存储文件信息的结构,组装成链表
	TBuf16<FOLDERLENG> iRootPath;			//文件夹的路径
	
	TBuf16<256>		iFilePath;	//文件的全路径


};	

#endif // _FILELISTENGINE_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -