• 大小: 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

评论

共有 条评论