Search code examples
actionscript-3flashair

File class AS3 / AIR: let user choose only save location, not file name or extension


When using browseForSave method, is it possible to let the user choose only the location of a file, and not the file name or the extension?

I'm creating an encrypted file, and I need its name and extensions not to be changed by the user.

Thx!


EDIT (AFTER SOLVED)

I was simply looking for the browseForDirectory method. Shame on me. :)


Solution

  • For a reference on how to open a browse dialog to choose a folder see the example here:

    How to create "Browse for folder" dialog in Adobe FLEX?

    once you have your directory you can piece that together with code here to save a file using the FileStream object:

    http://blog.everythingflex.com/2008/02/25/file-and-filestream-within-air/

    copied here since it's an external link

        private function saveFile():void{
            var myPattern:RegExp = / /g;
            var newFileName:String = fileName.text.replace('.txt','');
            if(newFileName.length > 1){
                var file:File = File.desktopDirectory.resolvePath("Files/" + newFileName.replace(myPattern,'_') + ".txt");
                var stream:FileStream = new FileStream()
                stream.open(file, FileMode.WRITE);
                var str:String = contents.text;
                str = str.replace(/\r/g, File.lineEnding);
                stream.writeUTFBytes(str);
                stream.close();
                fdg.directory = File.desktopDirectory.resolvePath("Files/");
                fileName.text = "";
                contents.text = "";
              } else {
                  mx.controls.Alert.show("File name is required", "Error Saving File");
              }
        }