Forum Discussion

Koemets's avatar
Koemets
Contributor
3 years ago

Documents\Public location

Got a task to copy certain file from FileShare to Documents\Public because users security settings. Wanted to go with the standard System.IO.File.Copy(strSourceFile,strTargetFile) where source and ta...
  • db_pdx's avatar
    3 years ago

    The methods you need are under BRApi.Filesystem:

    • BRApi.FileSystem.GetFile
      BRApi.FileSystem.InsertOrUpdateFile
    • BRApi.FileSystem.GetFileShareFolder

    Here's a mock example that just copies a file from a user's document folder and changes the name.  You'll need to swap the sourceFile/sourceDir pieces with FileShare pieces from BRApi.FileSystem.GetFileShareFolder according to your needs.

    'Source file
    Dim sourceFile As String = "SomeCSV.csv"
    Dim sourceDir As String = $"Documents/Users/{StringHelper.RemoveInvalidNameCharacters(si.UserName,False,False)}"
    'Target File
    Dim targetFile As String = "CopiedFile.csv"
    Dim targetDir As String = sourceDir
    				
    'Get the file
    Dim sourceXFFileEx As New XFFileEx
    sourceXFFileEx = BRApi.FileSystem.GetFile(si, FileSystemLocation.ApplicationDatabase, sourceDir & "/" & sourceFile,True,True)
    												
    'Save the file				
    Dim targetFileDataInfo As New XFFileInfo(FileSystemLocation.ApplicationDatabase, targetFile, targetDir)
    Dim targetFileData As New XFFile(targetFileDataInfo, String.Empty, sourceXFFileEx.XFFile.ContentFileBytes)
    BRApi.FileSystem.InsertOrUpdateFile(si, targetFileData)