Calendar

March 2007
S M T W T F S
« Feb   Apr »
 123
45678910
11121314151617
18192021222324
25262728293031

Tag Cloud

Categories

Archives

Recent Posts

Recent Comments


« Write your first file to the file system using Apollo | Main | Create your first Apollo Window »

File and FileStream within Apollo - full source code

By Rich Tretola | March 19, 2007Print This Post Print This Post
2,205 views

filereadwrite.jpg

Local access to the file system is what separates Apollo from Flex/Flash. This simple sample demonstrates how to read and write files to the local file system.

Here is the function that loads a file:

1
2
3
4
5
6
7
8
9
10
11
private function loadFile():void{
var file:File = File.appStorageDirectory;
file = file.resolve("Files/" + fdg.selectedItem.name);
stream = new FileStream();
stream.open(file, FileMode.READ);
var str:String = stream.readUTFBytes(stream.bytesAvailable);
stream.close();
str = str.replace(File.lineEnding, "\n");
contents.text = str;
fileName.text = file.name;
}

Here is the function that saves the file:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private function saveFile():void{
var myPattern:RegExp = / /g;
var newFileName:String = fileName.text.replace('.txt','');
if(newFileName.length > 1){
var file:File = File.appStorageDirectory.resolve("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.appStorageDirectory.resolve("Files/");
fileName.text = "";
contents.text = "";
mx.controls.Alert.show("File has been saved", "Notice");
} else {
mx.controls.Alert.show("File name is required", "Error Saving File");
}
}

Note that although this application uses File.appStorageDirectory, you also have easy access within Apollo to:

File.appResourceDirectory
File.appStorageDirectory
File.currentDirectory
File.desktopDirectory
File.documentsDirectory

Download the application

Download source code

Share this Post


Topics: Adobe AIR, Tutorials |

5 Responses to “File and FileStream within Apollo - full source code”

  1. Critter Says:
    March 26th, 2007 at 10:57 pm

    what is the purpose of this line:
    fdg.directory = File.appStorageDirectory.resolve(”Files/”)

    in both functions?

  2. everythingflex Says:
    March 27th, 2007 at 3:25 am

    Well, it is the way to get the path to a file. The two functions are looking at the same folder but different files. The loadFile function gets a reference to the selected filename within the Files folder.

    var file:File = File.appStorageDirectory;
    file = file.resolve(”Files/” + fdg.selectedItem.name);

    The saveFile function gets a refernce to the new filename within the Files folder.

    var file:File = File.appStorageDirectory.resolve(”Files/” + newFileName.replace(myPattern,’_’) + “.txt”);

  3. MatteoNY Says:
    June 20th, 2007 at 6:16 pm

    The code works but I had to change the
    “appStorageDirectory” to:”applicationStorageDirectory”
    As well as the WindowedApplication used by Flex3.

    I’m getting an error when I load “Windows - No Disk” Exception Processing Message c00000013 Parameters 75b6bf9c 4 75b6…. [cancel] [Try Again] [Continue]. If you continue the program works. I commented out the init() function to see if that would help but I am still getting the error. I hope this helps.

  4. everythingflex Says:
    June 20th, 2007 at 6:54 pm

    This application was built for the Apollo alpha and does not play nicely with the AIR beta and many things have changed between builds.

  5. Nancy Gill Says:
    November 23rd, 2007 at 1:23 pm

    Was the No Disk error ever solved? I am getting the same thing in my registered copy of FlexBuilder 2.

Comments