-
大小: 1005KB文件类型: .zip金币: 1下载: 0 次发布日期: 2023-10-23
- 语言: 其他
- 标签: os FileSystem
资源简介
操作系统课程设计 文件系统,已经提供源码及报告,高度模仿Linux命令行
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include“FileSystem.h“
using namespace std;
extern int disk_empty=20480; //全局变量虚拟磁盘空闲空间大小20M
string error[] = {“/““\\“ “:““<““>““|““*““&“} ; //命名中的非法字符
FileSystem::FileSystem() {
size = 0;
currentDir = NULL;
copytempfile = NULL;
copytempdir = NULL;
}
FileSystem::~FileSystem() {
disk_empty += size; //释放用户所占空间
size = 0; // 置0
MyDir *d = root;
MyFile *f = currentDir->filePtr;
while (f != 0) {
if (f->nextFile == 0) {
this->dele_file(f);
f = 0;
break;
}
while (f->nextFile->nextFile != 0)
f = f->nextFile;
this->dele_file(f->nextFile);
f->nextFile = 0;
f = currentDir->filePtr;
}
while (d != 0) {
if (d->nextDir == 0) {
this->dele_dir(d);
d = 0;
break;
}
while (d->nextDir->nextDir != 0)
d = d->nextDir;
this->dele_dir(d->nextDir);
d->nextDir = 0;
d = root;
}
}
int FileSystem::newFile() {
MyFile *p = NULL;
p = new MyFile;
if (p == 0) {
cout << “CREATE -FALSE“;
return 0;
}
cin>>p->name ;
//=====================
MyDir *d = currentDir->dirPtr;
if (d != NULL) {
while (d != NULL) {
string dtemp(d->name);
string ftemp(p->name);
if(dtemp == ftemp){
cout << “RENAME -FALSE“< return 0;
}
d = d->nextDir;
}
}
//=====================
/*命名检测*/
string tempname(p->name) ;
for(int i = 0 ;i< 8 ;++i)
{
if(tempname.find(error[i]0)!=string::npos)//从字符串的下标为0处开始查找error[i]如果没找到,返回一个特别的标志c++中用npos表示
{
cout << “RENAME -FALSE“< return 0 ;
}
}
/*创建时候情况如下
* 1. 目录下没有文件
* 2. 目录下有文件,新文件命名冲突
* 3. 目录下有文件,新文件无命名冲突
* */
/*检测有无同名函数*/
if (currentDir->filePtr == NULL) {
p->nextFile = currentDir->filePtr;
currentDir->filePtr = p;
} else {
MyFile *q = new MyFile;
q = currentDir->filePtr;
while (q != NULL) {
if (strcmp(p->name q->name)==0) {
cout << “FILE EXISTS -FALSE“ << endl;
return 0;
}
q = q->nextFile;
}
/*重置链表结构*/
p->nextFile = currentDir->filePtr;
//p->size=0;
currentDir->filePtr = p;
MyDir *h = currentDir;
/*更改上级目录的大小*/
while (h != NULL) {
h->size += p->size;
h = h->preDir;
}
}
currentDir->filePtr->size = 0;
cout <<“CREATE -OK“ << endl;
disk_empty = disk_empty - p->size;
size += p->size;
return 1;
}
int FileSystem::newDir(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 789 2017-12-11 23:35 makefile
目录 0 2017-12-23 14:42 nvfs\
文件 16264 2017-12-23 14:36 nvfs\FileSystem.cpp
文件 2086 2014-01-10 22:35 nvfs\FileSystem.h
文件 10515 2017-12-23 01:10 nvfs\Interface.cpp
文件 61 2014-01-10 22:35 nvfs\Interface.h
目录 0 2017-12-22 17:05 nvfs\bin\
目录 0 2017-12-23 14:37 nvfs\bin\Debug\
文件 1136178 2017-12-23 14:37 nvfs\bin\Debug\nvfs.exe
文件 84 2017-12-22 19:12 nvfs\main.cpp
文件 1204 2017-12-22 17:18 nvfs\nvfs.cbp
文件 592 2017-12-23 14:39 nvfs\nvfs.depend
文件 1107 2017-12-23 14:42 nvfs\nvfs.layout
目录 0 2017-12-22 17:05 nvfs\obj\
目录 0 2017-12-23 14:37 nvfs\obj\Debug\
文件 55294 2017-12-23 14:37 nvfs\obj\Debug\FileSystem.o
文件 44314 2017-12-23 14:14 nvfs\obj\Debug\Interface.o
文件 9822 2017-12-23 14:14 nvfs\obj\Debug\main.o
文件 777964 2017-12-23 14:48 操作系统课程设计.doc
文件 108 2017-12-23 14:45 说明.txt
相关资源
- 山寨主板的BIOS ROM
- ROST WordParser206472
-
Geoserver+openla
yer+postGis要素增删改查 - IOS项目实战
- 海思3518Ev200水印
- Thinkpad x201最新BIOS(6quj19us)+白名单
- Dell 15 5577+i5-7300HQ+HD630+GTX1050
- unzip-c7200-is-mz.122-37.rar
- nginx依赖包nginx依赖包
- 随机过程 Ross 中文版
- intel 9560ac 网卡 黑苹果驱动 带gui界面
- S16 Z8300 11.6寸 4G 128G BIOS备份文件
- Rational Rose 2003基础教程电子教案
- Cognos 8.3 安装教程+培训教程
- Image registration pdf 图像融合 英文版
- Beyond BIOS 学习bios 开发必备的书
- 高级iOS面试题底层基础2020年.zip
- ucos-iii代码
- stm32f407 ili9341屏幕驱动 HAL库 带FreeR
- applied geostatistics with SGeMS
- Bentley MicroStation CONNECT版Update410.00.00
- ios 仿微信程序源码
- 联想y480最新bios
- LibCurl编译好的x86 x64静态库
- 斯坦福Swift iOS 11 2017 源代码
- 图像真伪鉴别调研报告
- AMI的DMIEDIT软件
- ios平台的支持arm64和x86_64的通用opens
- OSSIM中文汉化
- 基于Adaboost算法的人脸检测
评论
共有 条评论