---
product: Chilkat
product_version: 11.7.0
language: js
language_label: JavaScript
class: SFtpDir
license: bundle
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/jsSFtpDirRef.html
---
# Chilkat SFtpDir — JavaScript — v11.7.0

> Chilkat 11.7.0 · language=js · class=SFtpDir
> 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/js/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**

Note: This is intended for running within a [Chilkat.Js embedded JavaScript engine](https://www.chilkatsoft.com/chilkat_javascript_engine.asp).

```
var obj = new CkSFtpDir();
```

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 JavaScript.

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` | `DebugLogFilePath` | read/write | If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. |
| `LastErrorHtml` | `LastErrorHtml` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `LastErrorText` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `LastErrorXml` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `LastMethodSuccess` | read/write | Indicates the success or failure of the most recent method call: `true` means success, `false` means failure. |
| `VerboseLogging` | `VerboseLogging` | read/write | If set to `true`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `Version` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `NumFilesAndDirs` | property, read-only | `NumFilesAndDirs` |
| `OriginalPath` | property, read-only | `OriginalPath` |
| `FileAt` | method | `var success = FileAt(index, fileObj);` |
| `GetFilename` | method | `var strVal = GetFilename(index);` |
| `Sort` | method | `Sort(field, ascending);` |

## Properties

### SFtpDir.NumFilesAndDirs

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

```javascript
NumFilesAndDirs
```

· `int`, `read-only`

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 · js · SFtpDir · OriginalPath · property · read-only`

```javascript
OriginalPath
```

· `string`, `read-only`

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 · js · SFtpDir · FileAt · method · since 11.0.0`

```javascript
var success = FileAt(index, fileObj);
```

· return: `boolean`; `true` for success, `false` for failure  
· index: `int`  
· fileObj: `CkSFtpFile`

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 true for success, false for failure.

### SFtpDir.GetFilename

`Chilkat 11.7.0 · js · SFtpDir · GetFilename · method`

```javascript
var strVal = GetFilename(index);
```

· return: `string`  
· index: `int`

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 `null` on failure

### SFtpDir.Sort

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

```javascript
Sort(field, ascending);
```

· return: `undefined`  
· field: `string`  
· ascending: `boolean`

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

Set `ascending` to `true` for ascending order or `false` 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. |

## Related classes

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

