Koemets
3 years agoContributor
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 targets are sting.
Can get full source file path using the FileShareFolderHelper. However can't get full path to the target, that is under FileSystemLocation.ApplicationDatabase.
Any suggestions how can I get the target path or otherwise copy the file in question?
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)
- BRApi.FileSystem.GetFile