---
name: "CosFileTransfer_FileTransferSession"
section: "3erl"
platform: "linux"
package: "erlang-manpages"
version: "1:19.2.1+dfsg-2+deb9u3"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/CosFileTransfer_FileTransferSession"
---

# CosFileTransfer\_FileTransferSession(3erl)

This module implements the OMG CosFileTransfer::FileTransferSession interface.

## NAME

CosFileTransfer\_FileTransferSession - This module implements the OMG CosFileTransfer::FileTransferSession interface.

## DESCRIPTION

To get access to the record definitions for the structures use: \
 *-include\_lib("cosFileTransfer/include/\*.hrl").*

## EXPORTS

**'\_get\_protocols\_supported'(FTS) -\> Return**\

Types:

FTS = #objref\
 Return = \[#'CosFileTransfer\_ProtocolSupport'{protocol\_name=Type, addresses=\[Address\]}\]\
 Type = Address = string()\

This read only attribute returns the protocols supported by the target object.

**set\_directory(FTS, Directory) -\> Return**\

Types:

FTS = Directory = #objref\
 Return = ok \| {'EXCEPTION, E}\

Invoking this operation will change the current working directory of the target object's associated file system. If fail to do so the appropriate exception is raised.

**create\_file(FTS, FileNameList) -\> Return**\

Types:

FTS = #objref\
 FileNameList = \[string()\]\
 Return = File \| {'EXCEPTION, E}\
 File = #objref\

This operation creates a *File* Object representing a file which may or may not exist. For this operation to be independent of the working directory the supplied *FileNameList* must represent the absolute name.

**create\_directory(FTS, FileNameList) -\> Return**\

Types:

FTS = #objref\
 FileNameList = \[string()\]\
 Return = Directory \| {'EXCEPTION, E}\
 Directory = #objref\

This operation creates a new directory in the target objects associated file systems domain. If fail to do so an exception is raised but, if successful, a *Directory* object representing the new directory is returned.

**get\_file(FTS, FileNameList) -\> Return**\

Types:

FTS = #objref\
 FileNameList = \[string()\]\
 Return = FileWrapper \| {'EXCEPTION, E}\
 FileWrapper = #'CosFileTransfer\_FileWrapper'{the\_file = File file\_type = Type}\
 File = #objref\
 Type = nfile \| ndirectory\

This operation, creates a *FileWrapper* which represents a file or directory, and should be independent of the working Directory, i.e., a full path name must be supplied. Furthermore, the file or directory represented by the *FileNameList* must exist.

**delete(FTS, File) -\> Return**\

Types:

FTS = File = #objref\
 Return = ok \| {'EXCEPTION', E}\

This operation removes the file or directory, represented by the *File* object, from the target objects associated file system. If it is a non-empty directory or non-existing file or directory an exception is raised.

**transfer(FTS, SourceFile, DestinationFile) -\> Return**\

Types:

FTS = SourceFile = DestinationFile = #objref\
 Return = ok \| {'EXCEPTION', E}\

If the target object's and the *DestinationFile's* associated *FileTransferSession's* support the same protocol(s) this operation will copy the file represented by the *SourceFile* from the target object's file system to a file in the destination *FileTransferSession's* file system. The file is represented by the *DestinationFile* object and may not exist. This operation must be invoked on the *FileTransferSession* associated with the *SourceFile* object.

**append(FTS, SourceFile, DestinationFile) -\> Return**\

Types:

FTS = SourceFile = DestinationFile = #objref\
 Return = ok \| {'EXCEPTION', E}\

This operation behaves almost like the *transfer/3* operation. The difference is that the *DestinationFile* must exist since the *SourceFile* will be appended to the *DestinationFile*.

Currently, it is not possible to use this operation when the target object represents FTP.

**insert(FTS, SourceFile, DestinationFile, Offset) -\> Return**\

Types:

FTS = SourceFile = DestinationFile = #objref\
 Offset = long()\
 Return = ok \| {'EXCEPTION', E}\

This operation behaves almost like the *append/3* operation. The difference is that the *SourceFile* will be inserted into the *DestinationFile* *Offset* bytes from the start of the file.

Currently, it is not possible to use this operation when the target object represents FTP.

**logout(FTS) -\> ok**\

Types:

FTS = #objref\

This operation terminates the target object and closes the connection to the file system it represents.
