📄 entrylist.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 + -