Community
Vault Customization
Share your knowledge, ask questions, and explore popular Vault API, Data Standard, and VBA topics related to programming, creating add-ins, or working with the Vault API.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Vault API - How to rename a file

9 REPLIES 9
SOLVED
Reply
Message 1 of 10
Anonymous
4173 Views, 9 Replies

Vault API - How to rename a file

I am trying to rename a file accordance to a pattern, but it seems I have trouble doing it - do I need to checkout and checkin file after the change? If yes can you provide a code sample (C#) how to checkout file, rename it, checkin using Vault API? Thank you.

9 REPLIES 9
Message 2 of 10
minkd
in reply to: Anonymous

The CheckInUploadedFile method has a newFilename parameter.

 

You rename a file by checking it out and checking it in with a new name.

 

-Dave

 



Dave Mink
Fusion Lifecycle
Autodesk, Inc.
Message 3 of 10
Anonymous
in reply to: minkd

Thanks. When I use conn.WebServiceManager.DocumentService.CheckoutFile there is no checked out  file at the location I specified (C:\tmp").  What I am doing wrong?

Message 4 of 10
Anonymous
in reply to: minkd

CheckinUploadedFile asks me for uploaded file, but I don't know how to do it. If you can provide a code example for checkout, checkin it would be great.

Message 5 of 10
minkd
in reply to: Anonymous

Please see this blog post:  http://justonesandzeros.typepad.com/blog/2013/05/how-to-acquire-files.html

 

-Dave



Dave Mink
Fusion Lifecycle
Autodesk, Inc.
Message 6 of 10
darius.simkunas
in reply to: minkd

Hi,

 

File checkedOutNewFile = CheckOut(folders[0], selectedFile);

if (checkedOutNewFile != null)

{

CheckIn(folders[0], checkedOutNewFile, newname, Coment);

}

 

public File CheckOut(Folder folder, File file)

{

string localPath = _connection.WorkingFoldersManager.GetWorkingFolder(folder.FullName).FullPath;

if (!System.IO.Directory.Exists(localPath))

System.IO.Directory.CreateDirectory(localPath);

AcquireFilesSettings settings = new VDF.Vault.Settings.AcquireFilesSettings(_connection);

settings.OptionsRelationshipGathering.FileRelationshipSettings.VersionGatheringOption = Autodesk.DataManagement.Client.Framework.Vault.Currency.VersionGatheringOption.Latest;

settings.OptionsResolution.OverwriteOption = AcquireFilesSettings.AcquireFileResolutionOptions.OverwriteOptions.ForceOverwriteAll;

settings.LocalPath = new VDF.Currency.FolderPathAbsolute(localPath);

settings.AddFileToAcquire(

new VDF.Vault.Currency.Entities.FileIteration(_connection, file),

VDF.Vault.Settings.AcquireFilesSettings.AcquisitionOption.Download | VDF.Vault.Settings.AcquireFilesSettings.AcquisitionOption.Checkout);

VDF.Vault.Results.AcquireFilesResults result = _connection.FileManager.AcquireFiles(settings);

foreach (var r in result.FileResults)

{

 

return m_serviceManager.DocumentService.GetFileById(r.File.EntityIterationId);

 

}

public File CheckIn(Folder folder, File file, string newname,string comm)

{

string localPath = _connection.WorkingFoldersManager.GetWorkingFolder(folder.FullName).FullPath;

string filePath = System.IO.Path.Combine(localPath, file.Name);

VDF.Vault.Currency.Entities.FileIteration ff = _connection.FileManager.CheckinFile(

new VDF.Vault.Currency.Entities.FileIteration(_connection, file), comm, false, null, null,

true, newname, file.FileClass, false,

new VDF.Currency.FilePathAbsolute(filePath));

 

 

return m_serviceManager.DocumentService.GetFileById(ff.EntityIterationId);

 

 

}

 

 

Message 7 of 10
Anonymous
in reply to: minkd

Thank you, Dave.

Message 8 of 10
Anonymous
in reply to: darius.simkunas

Thank you!

Message 9 of 10
Anonymous
in reply to: darius.simkunas

I have renamed file successfully as per your code. But, now, the links are broken. What I have missed. How I can keep links while renaming the file?

Message 10 of 10
darius.simkunas
in reply to: Anonymous

VDF.Vault.Results.AcquireFilesResults result = null;
 
File checkedOutNewFile = CheckOut(folders[0], selectedFile, ref result);
 
        if (checkedOutNewFile != null)
             {
               CheckIn(folders[0], checkedOutNewFile, newname, Coment, result);
              }
 
 
 
public File CheckOut(Folder folder, File file, ref VDF.Vault.Results.AcquireFilesResults result)
       {
           if (folder == null)
               folder = _connection.WebServiceManager.DocumentService.GetFolderById(file.FolderId);
           string localPath = _connection.WorkingFoldersManager.GetWorkingFolder(folder.FullName).FullPath;
           if (!System.IO.Directory.Exists(localPath))
               System.IO.Directory.CreateDirectory(localPath);
 
           AcquireFilesSettings settings = new VDF.Vault.Settings.AcquireFilesSettings(_connection);
           settings.OptionsRelationshipGathering.FileRelationshipSettings.VersionGatheringOption = Autodesk.DataManagement.Client.Framework.Vault.Currency.VersionGatheringOption.Latest;
           settings.LocalPath = new VDF.Currency.FolderPathAbsolute(localPath);
 
           settings.AddFileToAcquire(
               new VDF.Vault.Currency.Entities.FileIteration(_connection, file),
               VDF.Vault.Settings.AcquireFilesSettings.AcquisitionOption.Download | VDF.Vault.Settings.AcquireFilesSettings.AcquisitionOption.Checkout);
           result = _connection.FileManager.AcquireFiles(settings);
 
           foreach (var r in result.FileResults)
           {
              
                   return m_serviceManager.DocumentService.GetFileById(r.File.EntityIterationId);
              
           }
           return null;
       }
       public File CheckIn(Folder folder, File file, string newname, string comm, VDF.Vault.Results.AcquireFilesResults result)
       {
 
           if (folder == null)
               folder = _connection.WebServiceManager.DocumentService.GetFolderById(file.FolderId);
 
           string localPath = _connection.WorkingFoldersManager.GetWorkingFolder(folder.FullName).FullPath;
           string filePath = System.IO.Path.Combine(localPath, file.Name);
 
           FileAssocParam[] assparamsarr = null;
           if (result != null)
           {
               FileRelationshipGatheringSettings settings = new FileRelationshipGatheringSettings();
               settings.IncludeChildren = true;
               var fassoc = _connection.FileManager.GetFileAssociationLites(new long[] { result.FileResults.First().NewFileIteration.EntityIterationId }, settings);
 
               List<FileAssocParam> assparams = new List<FileAssocParam>();
               foreach (var **** in fassoc)
               {
                   FileAssocParam param = new FileAssocParam();
                   param.CldFileId = ****.CldFileId;
                   param.RefId = ****.RefId;
                   param.Source = ****.Source;
                   param.Typ = ****.Typ;
                   param.ExpectedVaultPath = ****.ExpectedVaultPath;
                   assparams.Add(param);
               }
               assparamsarr = assparams.ToArray();
           }
           VDF.Vault.Currency.Entities.FileIteration ff = _connection.FileManager.CheckinFile(
              new VDF.Vault.Currency.Entities.FileIteration(_connection, file),
              comm,
              false,
              assparamsarr,
              null,
              true,
              newname,
              file.FileClass,
              false,
              new VDF.Currency.FilePathAbsolute(filePath));
 
         
               return m_serviceManager.DocumentService.GetFileById(ff.EntityIterationId); 
                    
       }

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report