AIR: „Datei öffnen“-Dialog des Betriebsystems verwenden

Adobe AIR Open FileIm vorigen Beispiel wurde vorgestellt, wie man mit Adobe AIR auf Dateien per Drag-and-Drop zugreift. Nun ein weiteres Beispiel, das stattdessen den Dialog „Datei öffnen“ verwendet.

Flash – und somit AIR – hat mit File.browseForOpen eine Funktion, die den nativen Öffnen-Dialog des jeweiligen Betriebssysten startet. So lassen sich Dateien auf die Weise öffnen, wie es der Nutzer gewohnt ist. Die zur Verfügung stehende Dateiauswahl kann durch einen FileFilter anhand der Dateiendungen eingeschränkt werden.

Das Beispielprogramm hat einen Button, mit dem der „File open“ Dialog aufgerufen wird. Der Namen der selektierten Datei wird nach der Auswahl in einem Textfeld ausgegeben.

AIR - Datei öffnen Beispiel

Der Code der Anwendung lautet:

[as]
import flash.filesystem.*;
import flash.events.Event;
import flash.net.FileFilter;

// neues File
var myFile:File = new File();

// Filter für Dateiendungen
var txtFilter:FileFilter = new FileFilter(„Text“, „*.txt;*.xml“);
var bildFilter:FileFilter = new FileFilter („Bilder“, „*.jpg; *.png“);

function myOpenButton_CLICK(e:MouseEvent):void {

try {

// Öffnen-Dialog von Flash aufrufen
myFile.browseForOpen(„Bitte wählen Sie eine Datei“, [txtFilter, bildFilter]);

// event listener hinzufügen
//(funktion wird aufgerufen, wenn datei ausgewählt wurde)
myFile.addEventListener(Event.SELECT, fileSelected);
}

catch (error:Error) {
trace(error.message);
}

}

// event listener für Öffnen-Button
myOpenButton.addEventListener(MouseEvent.CLICK, myOpenButton_CLICK);

function fileSelected(event:Event):void {

// file in Variable abspeichern
var f:File = event.target as File;

// Dateinamen anzeigen
myTextField.text = f.nativePath;
}
[/as]

Download: Quelldateien
Link: flash.filesystem.File (Livedocs / AS3 Language Reference)

[ad]

7 Gedanken zu „AIR: „Datei öffnen“-Dialog des Betriebsystems verwenden“

  1. Hallo, nur eine Nebenbemerkung:

    Wer von euch zusätzlich ein Flugsimulatorfan ist , dem sei gesagt, daß diese .air Dateien seit langem von Microsoft in ihren FS benutzt werden.

    Somit schießt dieses „wunderbare“ Adobe Progi alle Flusis ab.
    Toll, oder?

    Harald Klose

  2. Hi,
    super Tut, aber was muss ich für ein FileFilter anlegen, wenn ich Ordner auswählen möchte und keine Dateien?
    ".;" und "/" gehen nicht.
    Grüße

  3. Hi,

    du brauchst keinen Filter zu setzen um einen Ordner auszuwählen. Es gibt dafür eine eigene Methode in der File Class, "browseForDirectory()". Die Methode ist asynchron, d.h. also du musst vorher ein Event abfangen.
    Hier ein keines Beispiel zur Verdeutlichung;)

    var file:File = new File();
    file.addEventListener(Event.SELECT, dirSelected);
    file.browseForDirectory("Select a directory");
    function dirSelected(e:Event):void {
    trace(file.nativePath);
    }

    Eventuell ist es genau das was du suchst.
    Hoffe konnte behilflich sein.
    Gruß

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert