QuickOPC User's Guide and Reference
IEasyUAFileTransferExtension2 Class
Members  Example 



View with Navigation Tools
OpcLabs.EasyOpcUA Assembly > OpcLabs.EasyOpc.UA.IO.Extensions Namespace : IEasyUAFileTransferExtension2 Class
Contains I/O extension methods for the OpcLabs.EasyOpc.UA.FileTransfer.IEasyUAFileTransfer interface.
Syntax
'Declaration
 
<ExtensionAttribute()>
<ComVisibleAttribute(False)>
<ExceptionContractVerificationAttribute(True)>
Public MustInherit NotInheritable Class IEasyUAFileTransferExtension2 
 
'Usage
 
Dim instance As IEasyUAFileTransferExtension2
Remarks

The "file transfer" in the name corresponds to how the related OPC UA specification part is titled. In reality, the functionality covers more than just file transfer - it represents a file system in OPC UA, and provides file access and manipulation operations.

CAUTION: Methods of this extension class do not throw the usual OpcLabs.EasyOpc.UA.OperationModel.UAException. Instead, an System.IO.IOException is thrown in case of an error during the operation.

See OPC UA File Transfer internals for more information about some internal functionality aspects such as:

Example

.NET

// Shows how to read the full contents of an OPC UA file at once, using the file transfer client.
// Note: Consider using a higher-level abstraction, OPC UA file provider, instead.

using System;
using System.IO;
using System.Text;
using OpcLabs.EasyOpc.UA;
using OpcLabs.EasyOpc.UA.FileTransfer;
using OpcLabs.EasyOpc.UA.IO.Extensions;

namespace UADocExamples.FileTransfer._EasyUAFileTransferClient
{
    class ReadAllBytes
    {
        public static void Main1()
        {
            // Unified Automation .NET based demo server (UaNETServer/UaServerNET.exe)
            UAEndpointDescriptor endpointDescriptor = "opc.tcp://localhost:48030";

            // A node that represents an instance of OPC UA FileType object.
            UANodeDescriptor fileNodeDescriptor = "nsu=http://www.unifiedautomation.com/DemoServer/ ;s=Demo.Files.TextFile";
            
            // Instantiate the file transfer client object
            var fileTransferClient = new EasyUAFileTransferClient();

            // Read in all contents from a specified file node.
            byte[] bytes;
            try
            {
                Console.WriteLine("Reading the whole file...");
                bytes = fileTransferClient.ReadAllBytes(endpointDescriptor, fileNodeDescriptor);
            }
            // Beware that ReadAllFileBytes throws IOException and not UAException.
            catch (IOException ioException)
            {
                Console.WriteLine("*** Failure: {0}", ioException.GetBaseException().Message);
                return;
            }

            // Display result
            Console.WriteLine();
            // We know that the file contains text, so we convert the received data to a string. If the file contents was
            // binary, you would process the data according to their format.
            string text = Encoding.UTF8.GetString(bytes);
            Console.WriteLine("File content:");
            Console.WriteLine(text);

            Console.WriteLine();
            Console.WriteLine("Finished...");
        }
    }
}
Inheritance Hierarchy

System.Object
   OpcLabs.EasyOpc.UA.IO.Extensions.IEasyUAFileTransferExtension2

Requirements

Target Platforms: .NET Framework: Windows 10 (selected versions), Windows 11 (selected versions), Windows Server 2016, Windows Server 2022; .NET: Linux, macOS, Microsoft Windows

See Also