Gtk.FileChooser.set_file

### Method

# Gtk FileChooserset_file

#### Declaration [src]

    gboolean
    gtk_file_chooser_set_file (
      GtkFileChooser* chooser,
      GFile* file,
      GError** error
    )

#### Description [src]

Sets `file` as the current filename for the file chooser.

This includes changing to the file’s parent folder and actually selecting the file in list. If the `chooser` is in `GTK_FILE_CHOOSER_ACTION_SAVE` mode, the file’s base name will also appear in the dialog’s file name entry.

If the file name isn’t in the current folder of `chooser`, then the current folder of `chooser` will be changed to the folder containing `file`.

Note that the file must exist, or nothing will be done except for the directory change.

If you are implementing a save dialog, you should use this function if you already have a file name to which the user may save; for example, when the user opens an existing file and then does “Save As…”. If you don’t have a file name already — for example, if the user just created a new file and is saving it for the first time, do not call this function.

Instead, use something similar to this:

    static void
    prepare_file_chooser (GtkFileChooser *chooser,
                          GFile          *existing_file)
    {
      gboolean document_is_new = (existing_file == NULL);

      if (document_is_new)
        {
          GFile *default_file_for_saving = g_file_new_for_path ("./out.txt");
          // the user just created a new document
          gtk_file_chooser_set_current_folder (chooser, default_file_for_saving, NULL);
          gtk_file_chooser_set_current_name (chooser, "Untitled document");
          g_object_unref (default_file_for_saving);
        }
      else
        {
          // the user edited an existing document
          gtk_file_chooser_set_file (chooser, existing_file, NULL);
        }
    }

#### Parameters

`file`

  Type: `GFile`

  The `GFile` to set as current.

  The data is owned by the caller of the function.

`error`

  Type: `GError **`

  The return location for a recoverable error.

  The argument can be `NULL`.
  If the return location is not `NULL`, then you must initialize it to a `NULL` `GError*`.
  The argument will left initialized to `NULL` by the method if there are no errors.
  In case of error, the argument will be set to a newly allocated `GError`; the caller will take ownership of the data, and be responsible for freeing it.

#### Return value

Type: `gboolean`

Not useful.