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

📄 file.cs

📁 os 课程设计不含文档 123456789
💻 CS
📖 第 1 页 / 共 5 页
字号:
                }
                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]);
                        for (int x = 0; x < 128; x++)
                        {
                            disk_.buffer1[x] = Convert.ToByte(0);
                        }
                        for (int x = 0; x < filebuffer.Length; x++)
                        {
                            disk_.buffer1[x] = Convert.ToByte(filebuffer[x]);
                        }
                        disk_.writeblock1(f);
                    }
                }
            }
            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]);
                        for (int x = 0; x < 128; x++)
                        {
                            disk_.buffer1[x] = Convert.ToByte(0);
                        }
                        for (int x = 0; x < filebuffer.Length; x++)
                        {
                            disk_.buffer1[x] = Convert.ToByte(filebuffer[x]);
                        }
                        disk_.writeblock1(f);
                    }
                }
            }
        }
        public void readfile(string filefullname, ref 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;
                    }
                }
                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_.readblock1(f);
                        for (int x = 0; x < 128&&disk_.buffer1[i]!='\0'; x++)
                        {
                            filebuffer += Convert.ToString(Convert.ToChar(disk_.buffer1[x]));
                        }
                    }
                }
            }
            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_.readblock1(f);
                        for (int x = 0; x < 128 && disk_.buffer1[i] != '\0'; x++)
                        {
                            filebuffer += Convert.ToString(Convert.ToChar(disk_.buffer1[x]));
                        }
                    }
                }
            }
        }

        //public bool copyfile()//复制文件
        //{

        //}
        //public bool movefile()//移动文件
        //{

        //}
        public void readcmd(string cmd)
        {
            if (cmd.Length == 0)	//指令为空
            {
                MessageBox.Show("指令长度不能为零!");
                return;
            }
            string[] command;
            
            
            command = cmd.Split('-');
            if (command.Length == 1)
            {
                if (command[0] == "formatc")
                {
                    formatc();
                }
                else if (command[0] == "formatd")
                {
                    formatd();
                }
                else
                {
                    MessageBox.Show("指令错误!");
                    return;
                }
            }
            else if (command.Length == 3)
            {
                if (command[0] == "copy")
                {
                    string[] pathfrom;
                    string[] pathto;
                    pathfrom = command[1].Split('\\');
                    pathto = command[2].Split('\\');
                    
                    if (pathfrom[0] == pathto[0])
                    {
                        #region 同盘
                        string filename = "";
                        string extname = "";
                        splitfilename(pathfrom[pathfrom.Length-1], ref filename, ref extname);
                        
                        int mubiaoweizhi = -1;


                        if (pathfrom[0] == "C")
                        {
                            disk_.diskfilename = disk_.diskfile[0];
                        }
                        else if (pathfrom[0] == "D")
                        {
                            disk_.diskfilename = disk_.diskfile[1];
                        }
                        else
                        {
                            disk_.diskfilename = disk_.diskfile[0];
                        }
                        int block1 = 1;
                        int block2 = 2;
                        for (int i = 0; i < pathfrom.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] == pathfrom[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] == pathfrom[i + 1])
                                        mubiaoweizhi = m;
                                }

⌨️ 快捷键说明

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