ADN Open CIS
Сообщество программистов Autodesk в СНГ

08/08/2014

Лёгкое программирование под Autodesk Vault Часть 28

Перемещение файлов осуществляется при помощи метода MoveFile класса DocumentService.

Требуемые методом параметры:

  • System.long fileMasterId – главный Id файла
  • System.long srcFolderId – исходная папка
  • System.long dstFolderId – конечная папка

Будем пользоваться Vault2014PowerPack.

Код - PowerShell: [Выделить]
  1. # Получим исходную папку, содержащую файл
  2. $fold1 = Get-VaultFolder -folderName "$/Designs/pump"
  3. # Получим конечную папку, в которую перемещаем файл
  4. $fold1 = Get-VaultFolder -folderName "$/Designs/pump2"
  5. # Получим конкретный файл в папке
  6. $file1 = $vltDocumentSvc.GetLatestFilesByFolderId($fold.Id, $false) | Where-Object {$_.Name -eq "pump1.iam"}
  7. # Переместим файл
  8. $vltDocumentSvc.MoveFile($file1.MasterId, $fold1.Id, $fold2.Id)

Стоит отметить, что может возникнуть ряд ошибок на стороне сервера, коды которых будут возвращены в случае отсутствия возможности переместить файл:

Код

Название

Примечание

1028

MoveFileFailed

Невозможно переместить файл.

1029

MoveFileExists

Есть только Id файла, не имя

1045

ConcurrentMoveFailed

Запрос на перемещение файла завершается сбоем, так как существует конкурентный запрос на перемещение файла в ту же папку, либо по причине конкурентного запроса на перемещение файла в другую папку

1120

FolderFileNameCollision

AddFile, CheckinFile, MoveFile, ShareFile, AddFolder

Обсуждение: http://adn-cis.org/forum/index.php?topic=897

Опубликовано 08.08.2014
Отредактировано 08.08.2014 в 12:27:34