---
product: Chilkat
product_version: 11.7.0
language: delphix
language_label: Delphi ActiveX
class: SFtpDir
class_name: TChilkatSFtpDir
license: bundle
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/delphiSFtpDirRef.html
---
# Chilkat SFtpDir — Delphi ActiveX — v11.7.0

> Chilkat 11.7.0 · language=delphix · class=SFtpDir (TChilkatSFtpDir)
> Other versions: replace `11.7.0` in this URL. Other languages: `https://www.chilkatsoft.com/ai-docs/v/11.7.0/<lang>/classes/SFtpDir.md`.
> Language-wide rules (install, unlock, error model, strings/bytes): `https://www.chilkatsoft.com/ai-docs/v/11.7.0/delphix/guide.md`.

## Purpose

**Inspect, sort, and iterate an SFTP directory listing.**

`Chilkat.SFtpDir` represents a directory listing returned by an SFTP operation. It provides the original path used to fetch the listing, the number of files and subdirectories found, methods for retrieving filenames or full `SFtpFile` entry details by index, sorting support, and a way to load a completed asynchronous directory-listing result.

**Directory listing object**

Holds the files and subdirectories returned from an SFTP directory-read operation.

**Original path tracking**

Use `OriginalPath` to see the remote path that was requested when the directory listing was created.

**Entry count**

Read `NumFilesAndDirs` to determine how many directory entries are available for iteration.

**Filename access**

Use `GetFilename` to retrieve the name of an entry by zero-based index.

**Full entry details**

Use `FileAt` to populate an `SFtpFile` object with metadata for a selected file or subdirectory.

**Sorting and async results**

Sort entries by filename, timestamps, or size, and load directory listings returned from completed async tasks.

**Common pattern:** Use a `Chilkat.SFtp` object to open or read a remote directory, then use the returned `SFtpDir` object to inspect `NumFilesAndDirs`, optionally call `Sort`, and loop from index `0` through the final entry. Use `GetFilename` when only names are needed, or `FileAt` when the application needs the full `SFtpFile` metadata for each entry.

## Object creation, unlocking and error handling

**Object Creation**

```pascal
var
obj: TChilkatSFtpDir;
...
begin
obj := TChilkatSFtpDir.Create(Self);
...
// When finished, free the object instance.
obj.Free();
```

Call `Global.UnlockBundle` once at the start of the program, before using this or any other Chilkat class. Any string unlocks a fully functional 30-day trial; a purchased unlock code is used in production. See `guide.md` for the exact code in Delphi ActiveX.

How failure is reported depends on the method's return type and is stated in the note under each method below. In every case the diagnostic text is in the `LastErrorText` property of the object whose method was called.

## Members common to every Chilkat class

Documented once per language in `common-members.md`; listed here so this page is self-contained.

| Property | Signature | Access | Meaning |
|---|---|---|---|
| `DebugLogFilePath` | `property DebugLogFilePath: WideString` | read/write | If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. |
| `LastBinaryResult` | `property LastBinaryResult: OleVariant readonly` | read-only | This property is mainly used in SQL Server stored procedures to retrieve binary data from the last method call that returned binary data. |
| `LastErrorHtml` | `property LastErrorHtml: WideString readonly` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `property LastErrorText: WideString readonly` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `property LastErrorXml: WideString readonly` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `property LastMethodSuccess: Integer` | read/write | Indicates the success or failure of the most recent method call: `1` means success, `0` means failure. |
| `LastStringResult` | `property LastStringResult: WideString readonly` | read-only | In SQL Server stored procedures, this property holds the string return value of the most recent method call that returns a string. |
| `LastStringResultLen` | `property LastStringResultLen: Integer readonly` | read-only | The length, in characters, of the string contained in the LastStringResult property. |
| `VerboseLogging` | `property VerboseLogging: Integer` | read/write | If set to `1`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `property Version: WideString readonly` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `NumFilesAndDirs` | property, read-only | `property NumFilesAndDirs: Integer readonly` |
| `OriginalPath` | property, read-only | `property OriginalPath: WideString readonly` |
| `FileAt` | method | `function FileAt(index: Integer; fileObj: IChilkatSFtpFile): Integer;` |
| `GetFilename` | method | `function GetFilename(index: Integer): WideString;` |
| `LoadTaskResult` | method | `function LoadTaskResult(task: IChilkatTask): Integer;` |
| `Sort` | method | `procedure Sort(field: WideString; ascending: Integer);` |

Deprecated members are listed at the end of this file with their replacements; do not use them in new code.

## Properties

### SFtpDir.NumFilesAndDirs

`Chilkat 11.7.0 · delphix · SFtpDir · NumFilesAndDirs · property · read-only`

```pascal
property NumFilesAndDirs: Integer readonly
```

Returns the number of entries in this directory listing.

The count includes every item returned by the server, such as regular files, directories, symbolic links, and special entries. Valid zero-based indexes range from `0` through `NumFilesAndDirs - 1`.

### SFtpDir.OriginalPath

`Chilkat 11.7.0 · delphix · SFtpDir · OriginalPath · property · read-only`

```pascal
property OriginalPath: WideString readonly
```

Returns the original remote path used to create this directory listing.

This is the same path string that was supplied to the SFTP directory-open operation. It identifies the requested directory and is retained with the listing for later reference.

## Methods

### SFtpDir.FileAt

`Chilkat 11.7.0 · delphix · SFtpDir · FileAt · method · since 11.0.0`

```pascal
function FileAt(index: Integer; fileObj: IChilkatSFtpFile): Integer;
```

Copies the metadata for the directory entry at the zero-based `index` into `fileObj`.

The first entry is at index `0`. Use `NumFilesAndDirs` to determine the number of available entries.

The populated `SFtpFile` object provides the entry name, type, size, timestamps, ownership, permissions, and any additional attributes supplied by the SFTP server.

Use `GetFilename` when only the entry name is needed.

Returns 1 for success, 0 for failure.

### SFtpDir.GetFilename

`Chilkat 11.7.0 · delphix · SFtpDir · GetFilename · method`

```pascal
function GetFilename(index: Integer): WideString;
```

Returns the filename of the directory entry at the zero-based `index`.

The first entry is at index `0`. Use `NumFilesAndDirs` to determine the number of available entries.

Use `FileAt` when the application needs the full `SFtpFile` metadata rather than only the entry name.

Returns a zero-length WideString on failure

### SFtpDir.LoadTaskResult

`Chilkat 11.7.0 · delphix · SFtpDir · LoadTaskResult · method · since 9.5.0.52`

```pascal
function LoadTaskResult(task: IChilkatTask): Integer;
```

Loads this `SFtpDir` object from the result of a completed asynchronous `Task`.

The task must represent an asynchronous SFTP operation whose result is a directory listing. Call this method after the task has finished to transfer the listing data into the current object.

Returns 1 for success, 0 for failure.

### SFtpDir.Sort

`Chilkat 11.7.0 · delphix · SFtpDir · Sort · method · since 9.5.0.79`

```pascal
procedure Sort(field: WideString; ascending: Integer);
```

Reorders the files and subdirectories in this listing according to `field`.

Set `ascending` to `1` for ascending order or `0` for descending order. The new order is used by index-based methods such as `GetFilename` and `FileAt`.

| field | Sort key |
| :--- | :--- |
| `filename` | Filename using the normal case-sensitive comparison. |
| `filenameNoCase` | Filename using a case-insensitive comparison. |
| `lastModifiedTime` | Last-modified date and time. |
| `lastAccessTime` | Last-access date and time. |
| `lastCreateTime` | Creation date and time. |
| `size` | Entry size in bytes. |

## Deprecated members — do not use in new code

| Member | Kind | Deprecated in | Use instead |
|---|---|---|---|
| `GetFileObject` | method | before 11.6.1 | `FileAt` |

## Related classes

[`SFtpFile`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/delphix/classes/SFtpFile.md), [`Task`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/delphix/classes/Task.md)

