public void MoveDirectory(string fromVirtualPath, string destinationVirtualPath) { var source = FileSystemPath.Directory(fromVirtualPath); var target = FileSystemPath.Directory(destinationVirtualPath); if (target.IsDescendantOf(source)) { throw new ApplicationException("Cannot move directory into own subdictory."); } using (var trx = Session.BeginTransaction()) { var directory = GetSpecificItem(source); var descendants = Session .CreateCriteria <FileSystemItem>() .Add(Restrictions.Like("Path.Parent", directory.Path.ToString(), MatchMode.Start)) .List <FileSystemItem>(); foreach (var item in descendants) { item.Path.Rebase(source, target); } directory.Updated = Utility.CurrentTime(); directory.Path = target; Session.Update(directory); trx.Commit(); } if (DirectoryMoved != null) { DirectoryMoved.Invoke(this, new FileEventArgs(destinationVirtualPath, fromVirtualPath)); } }
public void MoveDirectory(string fromVirtualPath, string destinationVirtualPath) { isp.RenameFolder(ToRelative(fromVirtualPath), ToRelative(destinationVirtualPath)); if (DirectoryMoved != null) { DirectoryMoved.Invoke(this, new FileEventArgs(destinationVirtualPath, fromVirtualPath)); } }
public void MoveDirectory(string fromVirtualPath, string destinationVirtualPath) { Directory.Move(MapPath(fromVirtualPath), MapPath(destinationVirtualPath)); if (DirectoryMoved != null) { DirectoryMoved.Invoke(this, new FileEventArgs(destinationVirtualPath, fromVirtualPath)); } }
public void MoveDirectory(string fromVirtualPath, string destinationVirtualPath) { try { Directory.Move(MapPath(fromVirtualPath), MapPath(destinationVirtualPath)); } catch (IOException) { // retry once Thread.Sleep(10); Directory.Move(MapPath(fromVirtualPath), MapPath(destinationVirtualPath)); } if (DirectoryMoved != null) { DirectoryMoved.Invoke(this, new FileEventArgs(destinationVirtualPath, fromVirtualPath)); } }
public void MoveDirectory(string fromVirtualPath, string destinationVirtualPath) { string fixedPath = FixPath(fromVirtualPath); MongoGridFS mongoGridFs = GetGridFS(); var fileInfos = mongoGridFs.Find(Query.Matches("metadata.directory_name", new BsonRegularExpression(new Regex(@"^" + fixedPath)))); foreach (var fi in fileInfos) { string newFileName = FixPath(destinationVirtualPath + "/" + fi.Name.Substring(fromVirtualPath.Length)); InternalMoveFile(fi.Name, newFileName); } InternalMoveFile(fromVirtualPath, destinationVirtualPath); if (DirectoryMoved != null) { DirectoryMoved.Invoke(this, new FileEventArgs(destinationVirtualPath, fromVirtualPath)); } }