📄 openfilemanager.cpp
字号:
#include"disk.h"
extern disk DISK;
openfilemanager::openfilemanager(){
ofdt.openfiledescriptortable_ini();
ilm.inodelist_memory_ini();
}
int openfilemanager::searchinodenumbycurrentpath(currentpath*pcp)//根据当前路径查找inode号
{
inodelist_disk ild(DISK.iof);
inode itemp;
ild.inodelist_disk_read(0,&itemp);//根据inode号读inode
int ii=0;
char filename[filenamelength];
folder ftemp(DISK.iof,itemp);
folderitem fitemp;
for(int x=2;x<=pcp->level;x++){
pcp->getname(filename,x);
ii=ftemp.folder_findbyname(filename);//根据文件名查找项号
if(ii==-1)return -1;
ftemp.folder_read(ii,&fitemp);
ild.inodelist_disk_read(fitemp.inodenum,&itemp);
ftemp.folder_open(DISK.iof,itemp);
}
if(x==2)return ii;
return fitemp.inodenum;
}
// ilm.inodelist_memory_searchbyinodenum(ii);
// openfileitem*pofi=createopenfileitem(){
openfileitem*openfilemanager::createopenfileitem(currentpath*pcp)//获取openfileitem句柄,即服务句柄,可以加上权限检测
{
int inodenum=searchinodenumbycurrentpath(pcp);
if(inodenum==-1)return NULL;
inode*itemp=ilm.inodelist_memory_searchbyinodenum(inodenum);
openfileitem*po=ofdt.createopenfile(itemp);
return po;
}
void openfilemanager::deleteitem(openfileitem*pof){
inode* itemp=ofdt.deleteitem(pof);
ilm.deleteitem(itemp);
pof=NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -