/// <summary> /// 尝试删除其他版本的文件夹,如果文件夹被占用,则忽略。 /// 此操作会导致当前版本联接到此版本的文件夹中。 /// </summary> /// <param name="version">要保留的版本号。</param> public void DeleteOthers(string version) { foreach (var directory in _rootDirectory.EnumerateDirectories("*", SearchOption.TopDirectoryOnly)) { if (directory.Name != version && CurrentDirectoryName.Equals(directory.Name, StringComparison.OrdinalIgnoreCase)) { PackageDirectory.Delete(directory); } } }
/// <summary> /// 删除所有版本的包文件夹,然后删除此包文件夹自身。 /// </summary> public void DeleteAll() => PackageDirectory.Delete(_rootDirectory);
/// <summary> /// 删除特定版本的包文件夹。 /// 如果当前版本就是正准备删除的版本(已建立目录联接),则也会同时删除当前版本(断开目录联接)。 /// 如果当前版本只是某个版本的副本(通常是因为管理分区在 NTFS 分区),则不会收到影响。 /// </summary> /// <param name="version">要删除的版本号。</param> public void Delete(string version) { var directory = GetVersionDirectory(version, false); PackageDirectory.Delete(directory); }