public void MoveItem(string source, string destination, string newName) { ThrowIfDisposed(); using var sourceItem = CreateShellItem(source); using var destinationItem = CreateShellItem(destination); _fileOperation.MoveItem(sourceItem.Item, destinationItem.Item, newName, null); }
public void MoveItem(string source, string destination, string newName) { IShellItem sourceItem = SafeNativeMethods.CreateShellItem(source); IShellItem destinationItem = SafeNativeMethods.CreateShellItem(destination); fileOperation.MoveItem(sourceItem, destinationItem, newName, null); }
public void MoveItem(string source, string destination, string newName) { ThrowIfDisposed(); using (ComReleaser <IShellItem> sourceItem = CreateShellItem(source)) using (ComReleaser <IShellItem> destinationItem = CreateShellItem(destination)) { _fileOperation.MoveItem(sourceItem.Item, destinationItem.Item, newName, null); } }
public static void Move(string destination, string source, bool overwrite = true) { if (Path.GetFullPath(destination) == Path.GetFullPath(source)) { return; } if (!overwrite) { destination = GetNonOverwriteFilename(destination); } if (_fileOperation == null) { System.IO.File.Move(source, destination); } else { if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && string.Equals(destination, source, StringComparison.CurrentCultureIgnoreCase)) { System.IO.File.Move(destination + " ", source); source = destination + " "; } var sourceItem = CreateItem(source); long result; if (Path.GetDirectoryName(source) != Path.GetDirectoryName(destination)) { var destinationPathItem = CreateItem(Path.GetDirectoryName(destination)); result = _fileOperation.MoveItem(sourceItem, destinationPathItem, Path.GetFileName(destination), IntPtr.Zero); Marshal.ReleaseComObject(destinationPathItem); } else { result = _fileOperation.RenameItem(sourceItem, Path.GetFileName(destination), IntPtr.Zero); } Marshal.ReleaseComObject(sourceItem); AssertHresult(result); } }
//public HResult RenameItems(object pUnkItems, string pszNewName) //{ // throw new NotImplementedException(); //} public void MoveItem(IShellItem psiItem, IShellItem psiDestinationFolder, string pszNewName, FileOperationProgressSink pfopsItem) { if (disposed) { throw new ObjectDisposedException(nameof(FileOperation)); } HResult hr = fileOperation.MoveItem(psiItem, psiDestinationFolder, pszNewName, pfopsItem?.FileOperationProgressSinkInternal); if (!CoreErrorHelper.Succeeded(hr)) { Marshal.ThrowExceptionForHR((int)hr); } }