### Function

# EDataServer filename_mkdir_encoded

since: 3.4

#### Declaration [src]

    gchar*
    e_filename_mkdir_encoded (
      const gchar* basepath,
      const gchar* fileprefix,
      const gchar* filename,
      gint fileindex
    )

#### Description [src]

Creates a local path constructed from `basepath` / `fileprefix` + “-” + `filename`, and makes sure the path `basepath` exists. If creation of the path fails, then NULL is returned.

Available since: 3.4

#### Parameters

`basepath`

  Type: `const gchar*`

  Base path of a file name; this is left unchanged.

  The data is owned by the caller of the function.
  The value is a NUL terminated UTF-8 string.

`fileprefix`

  Type: `const gchar*`

  Prefix for the filename; this is encoded.

  The data is owned by the caller of the function.
  The value is a NUL terminated UTF-8 string.

`filename`

  Type: `const gchar*`

  File name to use; this is encoded; can be `NULL`.

  The argument can be `NULL`.
  The data is owned by the caller of the function.
  The value is a NUL terminated UTF-8 string.

`fileindex`

  Type: `gint`

  Used when `filename` is NULL, then the filename is generated as “file” + fileindex.

#### Return value

Type: `gchar*`

Full local path like `g_build_filename()` except that `fileprefix` and `filename` are encoded to create a proper file elements for a file system. Free returned pointer with g_free().

The caller of the function takes ownership of the data, and is responsible for freeing it.
The return value can be `NULL`.
The value is a NUL terminated UTF-8 string.