65.9K
CodeProject 正在变化。 阅读更多。
Home

立即编目!

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.11/5 (17投票s)

2004 年 4 月 4 日

CPOL
viewsIcon

58825

downloadIcon

341

跟踪您本地、CD-ROM 和可移动设备上的所有文件。

Sample Image - catalognow.jpg

引言

跟踪您本地、CD-ROM 和可移动设备上的所有文件。然后将这些小型的目录与您一起携带,以及“Catalog Now!”

使用程序

主要目标是序列化以下类

  [Serializable()]
  public class DirectoryCollection: SortedList
  {
    public DirectoryCollection() : base() {}
    public DirectoryCollection(IDictionary c) : base(c) {}
  }

  [Serializable()]
  public class FilesCollection: SortedList
  {
    public FilesCollection() : base() {}
    public FilesCollection(IDictionary c) : base(c) {}
  }

  [Serializable()]
  public class DirectoryItem
  {
    public DirectoryCollection subdir;
    public FilesCollection files;
    public string Name;
    public string Comment;
    public bool isCompressed = false;
    public DirectoryItem(string name)
    {
      Name = name;
      files = new FilesCollection();
      subdir = new DirectoryCollection();
    }
    public DirectoryItem(string name, bool iscompressed)
    {
      Name = name;
      isCompressed = iscompressed;
      files = new FilesCollection();
      subdir = new DirectoryCollection();
    }
  }

  [Serializable()]
  public class FileItem
  {
    public string Name;
    public long Size;
    public DateTime Date;
    public string Comment;
    public FileItem(string name, long size, DateTime date)
    {
      Name = name;
      Size = size;
      Date = date;
    }
    public FileItem(string name, long size, DateTime date, string comment)
    {
      Name = name;
      Size = size;
      Date = date;
      Comment = comment;
    }
  }

  [Serializable()]
  public class CatalogVersion
  {
    public string Version = "1.0";
  }

  [Serializable()]
  public class CatalogHeader
  {
    public string VolumeName;
    public string VolumeSerialNumber;
    public uint DriveType;
    public ulong Size;
    public ulong FreeSpace;
    public DateTime DateofScan;
  }

使用 BinaryFormatterICSharpCode.SharpZipLib.dll 组件,我们可以压缩目录。

设备扫描是在可选读取压缩文件(.zip)的情况下完成的。

Sample screenshot

为了查找特定文件,可以按名称、注释、日期、大小等进行查找。

尽情享受吧!

致谢

  • 感谢 Mike Krueger 对他的 #ziplib (SharpZipLib,前身为 NZipLib,用 C# 完全编写的 Zip、GZip、Tar 和 BZip2 库) 的工作。

历史

  • 2004/04/05:修复权限错误。
  • 2004/04/04:初始版本。
© . All rights reserved.