/// <summary> /// 复制文件夹 /// </summary> /// <param name="targetDirectroy">目标文件夹</param> public IDirectory CopyTo(string targetDirectroy) { LocalDisk.ValidatePath(targetDirectroy); IDirectory dir = new Directory(targetDirectroy, disk); dir.Create(); string[] files = System.IO.Directory.GetFiles(Path); string fileName; string destFile; foreach (string s in files) { fileName = System.IO.Path.GetFileName(s); destFile = targetDirectroy + System.IO.Path.AltDirectorySeparatorChar + fileName; System.IO.File.Copy(s, destFile, true); } IDirectory drinfo; foreach (string info in System.IO.Directory.GetDirectories(Path)) { drinfo = new Directory(info, disk); drinfo.CopyTo(targetDirectroy + System.IO.Path.AltDirectorySeparatorChar + drinfo.Name); } return(dir.Refresh()); }
/// <summary> /// 移动到指定文件 /// </summary> public void MoveTo(string targetDirectory) { LocalDisk.ValidatePath(targetDirectory); (new Directory(targetDirectory, disk)).Create(); FileInfo.MoveTo(targetDirectory + Path.AltDirectorySeparatorChar + fileName + extension); directory = targetDirectory; Refresh(); }
/// <summary> /// 子文件夹是否存在 /// </summary> /// <param name="directoryPath"></param> /// <returns></returns> public bool Exists(string directoryPath) { LocalDisk.ValidatePath(directoryPath); directoryPath = LocalDisk.NormalizePath(directoryPath); DirectoryInfo dir = new DirectoryInfo(path + directoryPath); return(dir.Exists); }
/// <summary> /// 创建子目录文件夹,如果文件夹已经存在那么不会进行任何操作 /// </summary> /// <param name="directoryPath">子目录路径</param> /// <returns></returns> public IDirectory Create(string directoryPath) { LocalDisk.ValidatePath(directoryPath); directoryPath = LocalDisk.NormalizePath(directoryPath); IDirectory directory = null; if (!Exists(path + directoryPath)) { DirectoryInfo dir = new DirectoryInfo(path + directoryPath); dir.Create(); } directory = new Directory(path + directoryPath, disk); return(directory); }
/// <summary> /// 返回此目录的子目录(如果存在,反之抛出一个异常) /// </summary> /// <param name="directoryPath">子目录路径</param> /// <returns></returns> public IDirectory this[string directoryPath] { get { LocalDisk.ValidatePath(directoryPath); directoryPath = LocalDisk.NormalizePath(directoryPath); if (Exists(directoryPath)) { return(new Directory(path + directoryPath, disk)); } else { throw new DirectoryNotFoundException("a directory was not found at " + directoryPath); } } }
/// <summary> /// 文件夹服务 /// </summary> /// <param name="directoryPath">默认根路径</param> public Directory(string directoryPath, LocalDisk disk) { LocalDisk.ValidatePath(directoryPath); this.disk = disk; path = directoryPath; }