Симулятор файлового менеджера

Автор: Пользователь скрыл имя, 24 Февраля 2013 в 13:20, курсовая работа

Краткое описание

Целью разработки проекта «Программный симулятор формирования каталога файлов» является создание программного приложения.
Основными функциями, которого будут являться: начальное формирование каталога файлов, вывод каталога файлов, удаление файлов, дата создания которых меньше заданной, выборку файла с наибольшим количеством обращений, поиск файлов по имени, по расширению.
Пояснительная записка состоит из шести разделов, содержащих необходимую информацию по организации эксплуатации программного приложения.
В первом разделе «Постановка задачи» раскрывается организационная сущность задачи, и круг задач, которые должна выполнять программа. Описывается задача, перечисляются основные функции программы. Строится информационная модель, отражающая сущности задачи, их свойства и взаимосвязи.

Файлы: 1 файл

Мой курсач.doc

— 2.11 Мб (Скачать)

                }

                else

                    MessageBox.Show("Ошибка!\n Каталог уже существует");

            }

        }

 

        private void SaveTree(TreeNode nd)

        {

            if (nd.Nodes.Count > 0)

            {

                if (nd.Parent != null) //элементы нулевого уровня, без родителя, заданы жёстко => сохранять не надо

                {

                    ClassSaveTree cs = new ClassSaveTree(nd.Text, (ClassTag)nd.Tag, nd.Level, nd.Parent.Index);

                    listKategor.Add(cs);

                }

                for (int i = 0; i < nd.Nodes.Count; ++i)

                    SaveTree(nd.Nodes[i]);

            }

            else

            {

                if (nd.Parent != null) //элементы нулевого уровня, без родителя, заданы жёстко => сохранять не надо

                {

                    ClassSaveTree cs = new ClassSaveTree(nd.Text, (ClassTag)nd.Tag, nd.Level, nd.Parent.Index);

                    listKategor.Add(cs);

                }

            }

        }

 

        private void saveTreeStructure()

        {

            listKategor.Clear();

            SaveTree(treeView1.Nodes[0]);

            try

            {

                FileInfo fi = new FileInfo("FileStructure.xml");

                System.IO.TextWriter sw = fi.CreateText();

                XmlTextWriter writer = new XmlTextWriter(sw);

                writer.WriteStartElement("FileSimulator");

                writer.Formatting = Formatting.Indented;

                for (int i = 0; i < listKategor.Count; i++)

                {

                    writer.WriteStartElement("File");

                    writer.WriteElementString("FileName", listKategor[i].getCaption());

                    writer.WriteElementString("FileLevel", Convert.ToString(listKategor[i].getLevel()));

                    writer.WriteElementString("FileIndex", Convert.ToString(listKategor[i].getIndex()));

                    newTag = new ClassTag();

                    newTag = (ClassTag)listKategor[i].tag;

                    writer.WriteElementString("FileTag", newTag.tag);

                    writer.WriteElementString("FileDate", Convert.ToString(newTag.date));

                    writer.WriteElementString("FileRequest", Convert.ToString(newTag.request));

                    writer.WriteElementString("FileExtencion", Convert.ToString(newTag.extencion));

                    writer.WriteEndElement();

                }

                writer.WriteEndElement();

                writer.Close();

                sw.Close();

            }

            catch

            {

                return;

            }

        }

 

        private void createFileToolStripMenuItem_Click(object sender, EventArgs e)

        {

            form2.form1 = this;

            form2.label1.Text = "Cоздать новый файл:";

            form2.ShowDialog();

            if (DirName != "")

            {

                node = treeView1.SelectedNode;

                DirNameCreate = false;

                for (int i = 0; i < node.Nodes.Count; i++)

                {

                    if (node.Nodes[i].Text == DirName)

                    {

                        oldTag = new ClassTag();

                        oldTag = (ClassTag)node.Nodes[i].Tag;

                        if (Convert.ToString(oldTag.tag) == "FILE")

                            DirNameCreate = true;

                    }

                }

                if (!DirNameCreate)

                {

                    oldTag = new ClassTag();

                    oldTag = (ClassTag)node.Tag;

                    if (Convert.ToString(oldTag.tag) == "DIR")

                    {

                        TreeNode NewNode = new TreeNode();

                        NewNode.Text = DirName;

                        NewNode.ImageIndex = 1;

                        NewNode.SelectedImageIndex = 1;

                        newTag = new ClassTag();

                        newTag.tag = "FILE";

                        newTag.request = 0;

                        newTag.date = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second);

                        newTag.extencion = CopyExt(DirName);

                        NewNode.Tag = newTag;

                        node.Nodes.Add(NewNode);

                        saveTreeStructure();

                    }

                    else

                        MessageBox.Show("Ошибка!\n Файл не может быть создан");

                }

                else

                    MessageBox.Show("Ошибка!\n Файл уже существует");

            }

        }

 

        private string CopyExt(string temp)

        {

            string Ext = "";

            int i,j;

 

            if (temp.LastIndexOf(".") > 0)

            {

                j = 0;

                for (i = temp.LastIndexOf(".") + 1; i < temp.Length; i++)

                {

                    Ext += temp[i];

                    j++;

                }

            }

            return Ext;

        }

 

        private string CopyFileName(string temp)

        {

            string Ext = "";

            int i;

 

            if (temp.LastIndexOf(".") > 0)

            {

                for (i = 0; i < temp.LastIndexOf("."); i++)

                {

                    Ext += temp[i];

                }

           }

            else

                Ext = temp;

            return Ext;

        }

 

 

        private void deleteDirFileToolStripMenuItem_Click(object sender, EventArgs e)

        {

            node = treeView1.SelectedNode;

            form3.form1 = this;

            oldTag = new ClassTag();

            oldTag = (ClassTag)node.Tag;

            if (oldTag.tag == "DIR")

                form3.label1.Text = "Вы действительно хотите удалить\nкаталог '" + node.Text + "'?";

            if (oldTag.tag == "FILE")

                form3.label1.Text = "Вы действительно хотите удалить\nфайл '" + node.Text + "'?";

            form3.ShowDialog();

            if (Del)

            {

                if (node.Name != "Node0")

                {

                    node.Remove();

                }

                else

                    MessageBox.Show("Ошибка!\n Невозможно удалить");

            }

            saveTreeStructure();

        }

 

        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)

        {

            node = treeView1.SelectedNode;

            newTag = new ClassTag();

            newTag = (ClassTag)node.Tag;

            textBox1.Text = node.Text;

            textBox2.Text = newTag.tag;

            maskedTextBox1.Text = Convert.ToString(newTag.date.Date.ToShortDateString()) + Convert.ToString(newTag.date.TimeOfDay);

            maskedTextBox2.Text = Convert.ToString(newTag.request);

            saveTreeStructure();

        }

 

        private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)

        {

            node = treeView1.SelectedNode;

            oldTag = new ClassTag();

            newTag = new ClassTag();

            oldTag = (ClassTag)node.Tag;

            newTag.tag = oldTag.tag;

            newTag.date = oldTag.date;

            newTag.request = oldTag.request + 1;

            newTag.extencion = oldTag.extencion;

            node.Tag = newTag;

            maskedTextBox2.Text = Convert.ToString(newTag.request);

        }

 

        private void open()

        {

            try

            {

                listKategor.Clear();

                FileInfo fi = new FileInfo("FileStructure.xml");

                System.IO.TextReader sw = fi.OpenText();

                XmlTextReader reader = new XmlTextReader(sw);

                reader.Read();

                if (reader.IsStartElement("FileSimulator"))

                {

                    reader.ReadStartElement("FileSimulator");

                    while (reader.IsStartElement("File"))

                    {

                        reader.ReadStartElement("File");

                        DirName = reader.ReadElementString("FileName");

                        int Level = Convert.ToInt32(reader.ReadElementString("FileLevel"));

                        int Index = Convert.ToInt32(reader.ReadElementString("FileIndex"));

                        ClassTag newTag = new ClassTag();

                        newTag.tag = reader.ReadElementString("FileTag");

                        newTag.date = Convert.ToDateTime(reader.ReadElementString("FileDate"));

                        newTag.request = Convert.ToInt32(reader.ReadElementString("FileRequest"));

                        newTag.extencion = reader.ReadElementString("FileExtencion");

                        ClassSaveTree cs = new ClassSaveTree(DirName, newTag, Level, Index);

                        listKategor.Add(cs);

                        reader.ReadEndElement();

                    }

                }

                reader.Close();

                sw.Close();

            }

            catch

            {

                return;

            }

        }

 

        private void buildTree(int startNodenumber)

        {

            if (listKategor.Count == 0) return;

            TreeNode nd = treeView1.Nodes[startNodenumber];

            for (int i = 0; i < listKategor.Count; ++i)

            {

                ClassSaveTree cs = (ClassSaveTree)listKategor[i];

                while (cs.getLevel() - nd.Level != 1)

                {

                    if (nd.Level < cs.getLevel()) nd = nd.Nodes[cs.getIndex()];

                    else nd = nd.Parent;

                }

                TreeNode newnode = new TreeNode();

                newnode.Text = cs.getCaption();

                newnode.Tag = cs.tag;

                if(cs.tag.tag == "DIR")

                {

                    newnode.ImageIndex = 0 ;

                    newnode.SelectedImageIndex = 0 ;

                }

                if(cs.tag.tag == "FILE")

                {

                    newnode.ImageIndex = 1;

                    newnode.SelectedImageIndex = 1;

                }

                nd.Nodes.Add(newnode);

            }

        }

 

        private void Form1_MouseClick(object sender, MouseEventArgs e)

        {

            if (e.Button == MouseButtons.Right)

            {

                contextMenuStrip1.Show(this.Left + e.X, this.Top + e.Y);

            }

        }

 

        public void FindbyExt(TreeNode nd, string FindExt)

        {

            if (nd.Nodes.Count > 0)

            {

                if (nd.Parent != null)

                {

                    ClassTag newTag = new ClassTag();

                    newTag = (ClassTag)nd.Tag;

                    if (newTag.extencion == FindExt)

                    {

                        treeView1.SelectedNode = nd;

                        treeView1.SelectedNode.BackColor = Color.Yellow;

                        ClassSaveTree cs = new ClassSaveTree(nd.Text, (ClassTag)nd.Tag, nd.Level, nd.Parent.Index);

Информация о работе Симулятор файлового менеджера