The File plugin in 365 business Proxy Application provides full access to the local file system, as well as available network drives or UNC paths.
The File plugin is one of the standard plugins of 365 business Proxy Application and can be installed directly via the Proxy Application Clients page.
Objects
The following procedures are available through bdev.PRX Proxy Application
codeunit (ID 5523630).
Example
In the following example, the specified folder is read out. It then checks whether the “hello-world.txt” file already exists and deletes it if necessary. A new file “hello-world.txt” with the content “Hello, World!” is then created.
procedure ExampleFilePlugin
var
files: Record "bdev.PRX File Item" temporary;
proxyApp: Codeunit "bdev.PRX Proxy Application";
begin
// get file list for directory "C:\temp"
proxyApp.ListFiles(
files,
'C:\temp'
);
// check whether "hello-world.txt" exists
files.Reset();
files.SetRange("Name", 'hello-world.txt');
files.SetRange("Is File", true);
if (files.FindFirst()) then
// if file exists, delete it
proxyApp.DeleteFile(files."File Path");
// create file "hello-world.txt"
proxyApp.PostFile(
'C:\temp\hello-world.txt',
GetFileWithContent('Hello, World!')
);
end;
local procedure GetFileWithContent(content: Text) file: Codeunit "Temp Blob"
var
stream: OutStream;
begin
file.CreateOutStream(stream, TextEncoding::UTF8);
stream.WriteText(content);
exit(file);
end;
Functions
Call up file list (ListFiles)
files: Record "bdev.PRX File Item" temporary := ListFiles([clientId: Guid,] filePath: Text [,fileFilter: Text])
ListFiles(var files: Record "bdev.PRX File Item" temporary, [clientId: Guid,] filePath: Text [,fileFilter: Text])
Parameter
clientId: Guid
(Optional)
Specifies the ID of the proxy application client on which the operation is to be executed.filePath: Text
Specifies the path or UNC path for which the file list is to be retrieved.fileFilter: Text
Specifies the filter (e.g.*.txt
) to be applied to the listing.
Return
Returns the temporary table bdev.PRX File Item
, which represents the file list.
Check if file exists (FileExists)
fileExists: Boolean := FileExists([clientId: Guid,] filePath: Text)
Parameter
clientId: Guid
(Optional)
Specifies the ID of the proxy application client on which the operation is to be executed.filePath: Text
Specifies the path or UNC path of the file.
**Returns
Returns true
if the file exists.
Read file (GetFile)
file: Codeunit "Temp Blob" := GetFile([clientId: Guid,] filePath: Text)
Parameter
clientId: Guid
(Optional)
Specifies the ID of the proxy application client on which the operation is to be executed.filePath: Text
Specifies the path or UNC path of the file.
Return
Returns Codeunit "Temp Blob"
with the content of the file.
Write file (PostFile)
success: Boolean := PostFile([clientId: Guid,] filePath: Text, file: Codeunit "Temp Blob")
Parameter
clientId: Guid
(Optional)
Specifies the ID of the proxy application client on which the operation is to be executed.filePath: Text
Specifies the path or UNC path of the file.file: Codeunit "Temp Blob"
The file to be written.
**Returns
Returns true
if the file was written successfully.
Delete file (DeleteFile)
success: Boolean := DeleteFile([clientId: Guid,] filePath: Text)
Parameter
clientId: Guid
(Optional)
Specifies the ID of the proxy application client on which the operation is to be executed.filePath: Text
Specifies the path or UNC path of the file.
**Returns
Returns true
if the file was successfully deleted.
Move file (MoveFile)
success: Boolean := MoveFile([clientId: Guid,] fromFilePath: Text, toFilePath: Text [, overwrite: Boolean])
Parameter
clientId: Guid
(Optional)
Specifies the ID of the proxy application client on which the operation is to be executed.fromFilePath: Text
Specifies the path or UNC path of the file to be moved.toFilePath: Text
Specifies the target path or UNC path to which the file is to be moved.overwrite: Boolean
Specifies whether the file should be overwritten at the destination if it already exists.
**Returns
Returns true
if the file was successfully moved.
Copy file (CopyFile)
success: Boolean := CopyFile([clientId: Guid,] fromFilePath: Text, toFilePath: Text [, overwrite: Boolean])
Parameter
clientId: Guid
(Optional)
Specifies the ID of the proxy application client on which the operation is to be executed.fromFilePath: Text
Specifies the path or UNC path of the file to be copied.toFilePath: Text
Specifies the target path or UNC path to which the file is to be copied.overwrite: Boolean
Specifies whether the file should be overwritten at the destination if it already exists.
**Returns
Returns true
if the file was copied successfully.
Rename file (RenameFile)
success: Boolean := RenameFile([clientId: Guid,] filePath: Text, newFilePath: Text)
Parameter
clientId: Guid
(Optional)
Specifies the ID of the proxy application client on which the operation is to be executed.filePath: Text
Specifies the path or UNC path of the file.newFilePath: Text
Specifies the new name and path of the file.
**Returns
Returns true
if the file has been successfully renamed.
Check if directory exists (DirectoryExists)
success: Boolean := DirectoryExists([clientId: Guid,] directoryPath: Text)
Parameter
clientId: Guid
(Optional)
Specifies the ID of the proxy application client on which the operation is to be executed.directoryPath: Text
Specifies the path or UNC path of the directory.
**Returns
Returns true
if the directory exists.
Create directory (CreateDirectory)
success: Boolean := CreateDirectory([clientId: Guid,] directoryPath: Text)
Parameter
clientId: Guid
(Optional)
Specifies the ID of the proxy application client on which the operation is to be executed.directoryPath: Text
Specifies the path or UNC path of the directory to be created.
**Returns
Returns true
if the directory has been created.
Delete directory (DeleteDirectory)
success: Boolean := DeleteDirectory([clientId: Guid,] directoryPath: Text [, recursive: Boolean])
Parameter
clientId: Guid
(Optional)
Specifies the ID of the proxy application client on which the operation is to be executed.directoryPath: Text
Specifies the path or UNC path of the directory to be deleted.recursive: Boolean
Specifies whether the directory is to be deleted recursively.
**Returns
Returns true
if the directory has been deleted.
Move directory (MoveDirectory)
success: Boolean := MoveDirectory([clientId: Guid,] fromDirectoryPath: Text, toDirectoryPath: Text)
Parameter
clientId: Guid
(Optional)
Specifies the ID of the proxy application client on which the operation is to be executed.fromDirectoryPath: Text
Specifies the path or UNC path of the directory to be moved.toDirectoryPath: Text
Specifies the path or UNC path to which the directory is to be moved.
**Returns
Returns true
if the directory has been moved.
Copy directory (CopyDirectory)
success: Boolean := CopyDirectory([clientId: Guid,] fromDirectoryPath: Text, toDirectoryPath: Text)
Parameter
clientId: Guid
(Optional)
Specifies the ID of the proxy application client on which the operation is to be executed.fromDirectoryPath: Text
Specifies the path or UNC path of the directory to be copied.toDirectoryPath: Text
Specifies the path or UNC path to which the directory is to be copied.
**Returns
Returns true
if the directory has been copied.