Codeunit 9454 External File Storage, source in 26
Source26272829metadata in 26
src/System Application/App/External File Storage/src/FileStorage/ExternalFileStorage.Codeunit.al262 lines, Copyright (c) Microsoft Corporation. MIT
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace System.ExternalFileStorage;
codeunit 9454 "External File Storage"
{
var
ExternalFileStorageImpl: Codeunit "External File Storage Impl.";
/// <summary>
/// Initializes the File Storage for the given scenario.
/// </summary>
/// <param name="Scenario">File Scenario to use.</param>
procedure Initialize(Scenario: Enum "File Scenario")
begin
ExternalFileStorageImpl.Initialize(Scenario);
end;
/// <summary>
/// Initializes the File Storage for the give file account.
/// </summary>
/// <param name="TempFileAccount"> File Account to use.</param>
procedure Initialize(TempFileAccount: Record "File Account" temporary)
begin
ExternalFileStorageImpl.Initialize(TempFileAccount);
end;
/// <summary>
/// List all files from the given path.
/// </summary>
/// <param name="Path">Folder to list</param>
/// <param name="FilePaginationData">Defines the pagination data.</param>
/// <param name="TempFileAccountContent">File account content.</param>
procedure ListFiles(Path: Text; FilePaginationData: Codeunit "File Pagination Data"; var TempFileAccountContent: Record "File Account Content" temporary)
begin
ExternalFileStorageImpl.ListFiles(Path, FilePaginationData, TempFileAccountContent);
end;
/// <summary>
/// Retrieves a file from the file account.
/// </summary>
/// <param name="Path">File Path to open.</param>
/// <param name="Stream">Stream which contains the file content.</param>
[TryFunction]
procedure GetFile(Path: Text; Stream: InStream)
begin
ExternalFileStorageImpl.GetFile(Path, Stream);
end;
/// <summary>
/// Stores a file in to the file account.
/// </summary>
/// <param name="Path">File Path inside the file account.</param>
/// <param name="Stream">Stream to store.</param>
[TryFunction]
procedure CreateFile(Path: Text; Stream: InStream)
begin
ExternalFileStorageImpl.CreateFile(Path, Stream);
end;
/// <summary>
/// Copies a file in the file account.
/// </summary>
/// <param name="SourcePath">Source path of the file.</param>
/// <param name="TargetPath">Target Path of the file copy.</param>
[TryFunction]
procedure CopyFile(SourcePath: Text; TargetPath: Text)
begin
ExternalFileStorageImpl.CopyFile(SourcePath, TargetPath);
end;
/// <summary>
/// Moves a file in the file account.
/// </summary>
/// <param name="SourcePath">Source path of the file.</param>
/// <param name="TargetPath">Target Path of the file.</param>
[TryFunction]
procedure MoveFile(SourcePath: Text; TargetPath: Text)
begin
ExternalFileStorageImpl.MoveFile(SourcePath, TargetPath);
end;
/// <summary>
/// Checks if a specific file exists in the file account.
/// </summary>
/// <param name="Path">File path to check.</param>
/// <returns>Returns true if the file exists.</returns>
procedure FileExists(Path: Text): Boolean
begin
exit(ExternalFileStorageImpl.FileExists(Path));
end;
/// <summary>
/// Deletes a file from the file account.
/// </summary>
/// <param name="Path">File path of the file to delete.</param>
[TryFunction]
procedure DeleteFile(Path: Text)
begin
ExternalFileStorageImpl.DeleteFile(Path);
end;
/// <summary>
/// List all directories from the given path.
/// </summary>
/// <param name="Path">Folder to list</param>
/// <param name="FilePaginationData">Defines the pagination data.</param>
/// <param name="FileAccountContent">File account content.</param>
[TryFunction]
procedure ListDirectories(Path: Text; FilePaginationData: Codeunit "File Pagination Data"; var TempFileAccountContent: Record "File Account Content" temporary)
begin
ExternalFileStorageImpl.ListDirectories(Path, FilePaginationData, TempFileAccountContent);
end;
/// <summary>
/// Creates a directory in the file account.
/// </summary>
/// <param name="Path">Path of the new Directory to create.</param>
[TryFunction]
procedure CreateDirectory(Path: Text)
begin
ExternalFileStorageImpl.CreateDirectory(Path);
end;
/// <summary>
/// Checks if a specific directory exists in the file account.
/// </summary>
/// <param name="Path">Path of the directory to check.</param>
/// <returns>Returns true if directory exists.</returns>
procedure DirectoryExists(Path: Text): Boolean
begin
exit(ExternalFileStorageImpl.DirectoryExists(Path));
end;
/// <summary>
/// Deletes a directory from the file account.
/// </summary>
/// <param name="Path">Directory to remove.</param>
[TryFunction]
procedure DeleteDirectory(Path: Text)
begin
ExternalFileStorageImpl.DeleteDirectory(Path);
end;
/// <summary>
/// Combines to paths together.
/// </summary>
/// <param name="Path">First part to combine.</param>
/// <param name="ChildPath">Second part to combine.</param>
/// <returns>Correctly combined path.</returns>
procedure CombinePath(Path: Text; ChildPath: Text): Text
begin
exit(ExternalFileStorageImpl.CombinePath(Path, ChildPath));
end;
/// <summary>
/// Gets the Parent Path of the given path.
/// </summary>
/// <param name="Path">File or directory path.</param>
/// <returns>The parent of the specified path.</returns>
procedure GetParentPath(Path: Text): Text
begin
exit(ExternalFileStorageImpl.GetParentPath(Path));
end;
/// <summary>
/// Opens a folder selection dialog.
/// </summary>
/// <param name="Path">Start path of the dialog.</param>
/// <returns>Returns the selected Folder.</returns>
procedure SelectAndGetFolderPath(Path: Text): Text
var
DefaultSelectFolderLbl: Label 'Select a folder';
begin
exit(SelectAndGetFolderPath(Path, DefaultSelectFolderLbl));
end;
/// <summary>
/// Opens a folder selection dialog.
/// </summary>
/// <param name="Path">Start path of the dialog.</param>
/// <param name="DialogTitle">Title of the selection dialog.</param>
/// <returns>Returns the selected Folder.</returns>
procedure SelectAndGetFolderPath(Path: Text; DialogTitle: Text): Text
begin
exit(ExternalFileStorageImpl.SelectAndGetFolderPath(Path, DialogTitle));
end;
/// <summary>
/// Opens a select file dialog.
/// </summary>
/// <param name="Path">Start path.</param>
/// <param name="FileFilter">A filter string that applies only on files not on folders.</param>
/// <returns>Returns the path of the selected file.</returns>
procedure SelectAndGetFilePath(Path: Text; FileFilter: Text): Text
var
DefaultSelectFileUILbl: Label 'Select a file';
begin
exit(SelectAndGetFilePath(Path, FileFilter, DefaultSelectFileUILbl));
end;
/// <summary>
/// Opens a select file dialog.
/// </summary>
/// <param name="Path">Start path of the dialog.</param>
/// <param name="FileFilter">A filter string that applies only on files not on folders.</param>
/// <param name="DialogTitle">Title of the selection dialog.</param>
/// <returns>Returns the path of the selected file.</returns>
procedure SelectAndGetFilePath(Path: Text; FileFilter: Text; DialogTitle: Text): Text
begin
exit(ExternalFileStorageImpl.SelectAndGetFilePath(Path, FileFilter, DialogTitle));
end;
/// <summary>
/// Opens a save to dialog.
/// </summary>
/// <param name="Path">Start path of the dialog.</param>
/// <param name="FileExtension">The file extension without dot (like pdf or txt).</param>
/// <returns>Returns the selected file path.</returns>
procedure SaveFile(Path: Text; FileExtension: Text): Text
var
DefaultSaveFileTitleLbl: Label 'Save as';
begin
exit(SaveFile(Path, '', FileExtension, DefaultSaveFileTitleLbl));
end;
/// <summary>
/// Opens a save to dialog.
/// </summary>
/// <param name="Path">Start path of the dialog.</param>
/// <param name="FileExtension">The file extension without dot (like pdf or txt).</param>
/// <param name="DialogTitle">Title of the selection dialog.</param>
/// <returns>Returns the selected file path.</returns>
procedure SaveFile(Path: Text; FileExtension: Text; DialogTitle: Text): Text
begin
exit(SaveFile(Path, '', FileExtension, DialogTitle));
end;
/// <summary>
/// Opens a save to dialog.
/// </summary>
/// <param name="Path">Start path of the dialog.</param>
/// <param name="FileNameSuggestion">Suggested file name for the dialog.</param>
/// <param name="FileExtension">The file extension without dot (like pdf or txt).</param>
/// <param name="DialogTitle">Title of the selection dialog.</param>
/// <returns>Returns the selected file path.</returns>
procedure SaveFile(Path: Text; FileNameSuggestion: Text; FileExtension: Text; DialogTitle: Text): Text
begin
exit(ExternalFileStorageImpl.SaveFile(Path, FileNameSuggestion, FileExtension, DialogTitle));
end;
/// <summary>
/// Opens a File Browser
/// </summary>
procedure BrowseAccount()
begin
ExternalFileStorageImpl.BrowseAccount();
end;
}