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

📄 entrylist.cs

📁 这是一款系统系统备份的软件
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.IO;

namespace BackupSystem.DataLayer
{
    public class EntryList
    {
        private ArrayList arrEntries;

        public ArrayList Entries
        {
            get { return this.arrEntries; }
        }

        public int Count
        {
            get { return this.arrEntries.Count; }
        }

        public EntryList()
        {
            this.arrEntries = new ArrayList();
        }

        /// <summary>
        /// 从给定文件读取。
        /// </summary>
        /// <param name="filename">File to load.</param>
        /// <returns></returns>
        public static EntryList Load(string filename)
        {
            EntryList newEntryList = new EntryList();
            if (!File.Exists(filename))
            {
                new FileNotFoundException("File not found!");
            }

            StreamReader reader = new StreamReader(filename);
            String line;
            line = reader.ReadLine();
            while (line != null)
            {
                //跳过空行和注释行
                if (!line.Equals("") && !line.StartsWith("#"))
                {
                    //分开关键字符串和价值字符串
                    String[] splits = line.Split(new char[] { '\t' });
                    if (splits.Length != 3)
                    {
                        throw new Exception("档案格式错误!");
                    }
                    else
                    {
                        newEntryList.Add(splits[0], splits[1], splits[2]);
                    }
                }
                line = reader.ReadLine();
            }
            reader.Close();
            return newEntryList;
        }

        /// <summary>
        /// 储存项目档案。
        /// </summary>
        /// <param name="filename">File to save.</param>
        public void Save(string filename)
        {
            try
            {
                if (!File.Exists(filename))
                {
                    File.Create(filename).Close();
                }
                if (this.arrEntries.Count == 0)
                    return;
                else
                {
                    StreamWriter w = new StreamWriter(filename, false);
                    foreach (Entry e in this.arrEntries)
                    {
                        w.WriteLine(e.ID + "\t" + e.OriginalFolder + "\t" + e.TargetFolder);
                    }
                    w.Close();
                }
            }
            catch (Exception)
            {
                throw new Exception("保存失败!");
            }
        }

        /// <summary>
        /// 添加一个条目到列表中
        /// </summary>
        /// <param name="id">ID</param>
        /// <param name="originalFolder">Original Folder</param>
        /// <param name="targetFolder">Target Folder</param>
        public void Add(string id, string originalFolder, string targetFolder)
        {
            foreach (Entry e in arrEntries)
            {
                if (e.OriginalFolder.Equals(originalFolder, StringComparison.OrdinalIgnoreCase)
                    && e.TargetFolder.Equals(targetFolder, StringComparison.OrdinalIgnoreCase))
                {
                    throw new Exception("条目已经存在!");
                }
            }
            Entry entry = new Entry(id, originalFolder, targetFolder);
            this.arrEntries.Add(entry);
        }

        /// <summary>
        /// 删除的进入,由于原始文件夹和目标文件夹.
        /// </summary>
        /// <param name="originalFolder">Original Folder</param>
        /// <param name="targetFolder">Target Folder</param>
        public void Delete(string originalFolder, string targetFolder)
        {
            foreach (Entry e in arrEntries)
            {
                if (e.OriginalFolder.Equals(originalFolder, StringComparison.OrdinalIgnoreCase)
                    && e.TargetFolder.Equals(targetFolder, StringComparison.OrdinalIgnoreCase))
                {
                    this.arrEntries.Remove(e);
                    return;
                }
            }
            //If not found
            throw new Exception("要删除的不存在!");
        }

        /// <summary>
        /// 搜索该给予入境。
        /// </summary>
        /// <param name="originalFolder">Original Folder</param>
        /// <param name="targetFolder">Target Folder</param>
        /// <returns>Return the queried entry if it is found, else return null. </returns>
        public Entry Search(string originalFolder, string targetFolder)
        {
            foreach (Entry e in arrEntries)
            {
                if (e.OriginalFolder.Equals(originalFolder, StringComparison.OrdinalIgnoreCase)
                    && e.TargetFolder.Equals(targetFolder, StringComparison.OrdinalIgnoreCase))
                {
                    return e;
                }
            }
            //If not found
            return null;
        }
    }
}

⌨️ 快捷键说明

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