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

📄 file.cs

📁 os 课程设计不含文档 123456789
💻 CS
📖 第 1 页 / 共 5 页
字号:
            else
            {
                disk_.diskfilename = disk_.diskfile[0];
            }
            int block1 = 1;
            int block2 = 2;
            for (int i = 0; i < paths.Length - 2; i++)
            {
                disk_.readblock1(block1);
                string[] name = new string[8];
                for (int n = 0; n < 8; n++)
                {
                    name[n] = Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 0])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 1])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 2])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 3])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 4])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 5]));
                    name[n] = name[n].Trim();
                }
                for (int m = 0; m < 8; m++)
                {
                    if (name[m] == paths[i + 1])
                        mubiaoweizhi = m;
                }
                if (mubiaoweizhi == -1)
                {
                    disk_.readblock1(block2);
                    for (int n = 0; n < 8; n++)
                    {
                        name[n] = Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 0])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 1])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 2])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 3])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 4])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 5]));
                        name[n] = name[n].Trim();
                    }
                    for (int m = 0; m < 8; m++)
                    {
                        if (name[m] == paths[i + 1])
                            mubiaoweizhi = m;
                    }
                }
                block1 = Convert.ToInt32(disk_.buffer1[mubiaoweizhi * 16 + 11]);
                block2 = Convert.ToInt32(disk_.buffer1[mubiaoweizhi * 16 + 12]);
            }
            string[] u = new string[8];
            string[] v = new string[8];
            disk_.readblock1(block1);
            //mubiaoweizhi = -1;
            for (int i = 0; i < 8; i++)
            {
                if (Convert.ToInt32(disk_.buffer1[i * 16 + 15]) == 1)
                {
                    u[i] = Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 0])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 1])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 2])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 3])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 4])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 5]));
                    v[i] = Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 6])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 7])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 8]));
                    u[i]=u[i].Trim();
                    v[i]=v[i].Trim();
                    if (u[i] == filename && v[i] == extname)
                    {
                        int f = Convert.ToInt32(disk_.buffer1[i * 16 + 11]);
                        disk_.returnblock(f);
                        disk_.readblock1(block1);
                        for (int x = 0; x < 16; x++)
                        {
                            disk_.buffer1[i * 16 + x] = Convert.ToByte(0);
                        }

                        disk_.writeblock1(block1);
                    }
                }
            }
            disk_.readblock1(block2);
            //mubiaoweizhi = -1;
            for (int i = 0; i < 8; i++)
            {
                if (Convert.ToInt32(disk_.buffer1[i * 16 + 15]) == 1)
                {
                    u[i] = Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 0])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 1])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 2])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 3])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 4])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 5]));
                    v[i] = Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 6])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 7])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 8]));
                    u[i] = u[i].Trim();
                    v[i] = v[i].Trim();
                    if (u[i] == filename && v[i] == extname)
                    {
                        int f = Convert.ToInt32(disk_.buffer1[i * 16 + 11]);
                        disk_.returnblock(f);
                        disk_.readblock1(block2);
                        for (int x = 0; x < 16; x++)
                        {
                            disk_.buffer1[i * 16 + x] = Convert.ToByte(0);
                        }
                        disk_.writeblock1(block2);
                    }
                }
            }
                return true;
            }
        #region 格式化磁盘
        public void formatc()//格式化c盘
        {
            disk_.diskfilename = disk_.diskfile[0];
            disk_.initdisk();
        }
        public void formatd()//格式化d盘
        {
            disk_.diskfilename = disk_.diskfile[1];
            disk_.initdisk();
        }
        #endregion
        public bool deletedir(string dirname)//删除kong目录
        {           
            string[] paths;
            int mubiaoweizhi = -1;
            paths = splitfullpath(currentdir);

            if (paths[0] == "C")
            {
                disk_.diskfilename = disk_.diskfile[0];
            }
            else if (paths[0] == "D")
            {
                disk_.diskfilename = disk_.diskfile[1];
            }
            else
            {
                disk_.diskfilename = disk_.diskfile[0];
            }
            int block1 = 1;
            int block2 = 2;
            for (int i = 0; i < paths.Length - 2; i++)
            {
                disk_.readblock1(block1);
                string[] name = new string[8];
                for (int n = 0; n < 8; n++)
                {
                    name[n] = Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 0])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 1])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 2])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 3])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 4])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 5]));
                    name[n] = name[n].Trim();
                }
                for (int m = 0; m < 8; m++)
                {
                    if (name[m] == paths[i + 1])
                        mubiaoweizhi = m;
                }
                if (mubiaoweizhi == -1)
                {
                    disk_.readblock1(block2);
                    for (int n = 0; n < 8; n++)
                    {
                        name[n] = Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 0])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 1])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 2])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 3])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 4])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 5]));
                        name[n] = name[n].Trim();
                    }
                    for (int m = 0; m < 8; m++)
                    {
                        if (name[m] == paths[i + 1])
                            mubiaoweizhi = m;
                    }
                }
                block1 = Convert.ToInt32(disk_.buffer1[mubiaoweizhi * 16 + 11]);
                block2 = Convert.ToInt32(disk_.buffer1[mubiaoweizhi * 16 + 12]);
            }
            string[] u = new string[8];           
            disk_.readblock1(block1);
            //mubiaoweizhi = -1;
            for (int i = 0; i < 8; i++)
            {
                if (Convert.ToInt32(disk_.buffer1[i * 16 + 15]) == 1)
                {
                    u[i] = Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 0])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 1])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 2])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 3])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 4])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 5]));
                    u[i] = u[i].Trim();
                    
                    if (u[i] == dirname)
                    {
                        int f = Convert.ToInt32(disk_.buffer1[i * 16 + 11]);
                        int g = Convert.ToInt32(disk_.buffer1[i * 16 + 12]);
                        disk_.returnblock(f);
                        disk_.returnblock(g);
                        disk_.readblock1(block1);
                        for (int x = 0; x < 16; x++)
                        {
                            disk_.buffer1[i * 16 + x] = Convert.ToByte(0);
                        }
                        disk_.writeblock1(block1);
                    }
                }
            }
            disk_.readblock1(block2);
            //mubiaoweizhi = -1;
            for (int i = 0; i < 8; i++)
            {
                if (Convert.ToInt32(disk_.buffer1[i * 16 + 15]) == 1)
                {
                    u[i] = Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 0])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 1])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 2])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 3])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 4])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 5]));
                    u[i] = u[i].Trim();

                    if (u[i] == dirname)
                    {
                        int f = Convert.ToInt32(disk_.buffer1[i * 16 + 11]);
                        int g = Convert.ToInt32(disk_.buffer1[i * 16 + 12]);
                        disk_.returnblock(f);
                        disk_.returnblock(g);
                        disk_.readblock1(block2);
                        for (int x = 0; x < 16; x++)
                        {
                            disk_.buffer1[i * 16 + x] = Convert.ToByte(0);
                        }
                        disk_.writeblock1(block2);
                    }
                }
            }
            return true;
        }
        public void writefile(string filefullname, string filebuffer)//写文件
        {
            string filename = "";
            string extname = "";
            splitfilename(filefullname, ref filename, ref extname);
            string[] paths;
            int mubiaoweizhi = -1;
            paths = splitfullpath(currentdir);

            if (paths[0] == "C")
            {
                disk_.diskfilename = disk_.diskfile[0];
            }
            else if (paths[0] == "D")
            {
                disk_.diskfilename = disk_.diskfile[1];
            }
            else
            {
                disk_.diskfilename = disk_.diskfile[0];
            }
            int block1 = 1;
            int block2 = 2;
            for (int i = 0; i < paths.Length - 1; i++)
            {
                disk_.readblock1(block1);
                string[] name = new string[8];
                for (int n = 0; n < 8; n++)
                {
                    name[n] = Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 0])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 1])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 2])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 3])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 4])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 5]));
                    name[n] = name[n].Trim();
                }
                for (int m = 0; m < 8; m++)
                {
                    if (name[m] == paths[i + 1])
                        mubiaoweizhi = m;
                }
                if (mubiaoweizhi == -1)
                {
                    disk_.readblock1(block2);
                    for (int n = 0; n < 8; n++)
                    {
                        name[n] = Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 0])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 1])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 2])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 3])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 4])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 5]));
                        name[n] = name[n].Trim();
                    }
                    for (int m = 0; m < 8; m++)
                    {
                        if (name[m] == paths[i + 1])
                            mubiaoweizhi = m;
                    }

⌨️ 快捷键说明

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