• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 570
  • Last Modified:

Path to file for AIR

I'm creating an air file.  Is there a way to get the path that the air file resides at?  Something similar to file.nativePath, but instead of giving the path of a file, I want the path of my air exe/app,
0
walker6o9
Asked:
walker6o9
  • 3
  • 2
1 Solution
 
SavongCommented:
The applicationDirectory property of any File object should give you this value.
0
 
walker6o9Author Commented:
I got the following error.

My relevant code below.  I imported the filesystem class and declared file as a file object earlier in code but don't want to include it so as not to clutter things up too much for you.


MY ERROR:


ReferenceError: Error #1069: Property applicationDirectory not found on flash.filesystem.File and there is no default value.
      at XBoxApp/showCompleteScreen()[C:\Users\freelance9\Desktop\Interfaces\Design\XBoxApp.as:363]
      at XBoxApp/onDownloaded()[C:\Users\freelance9\Desktop\Interfaces\Design\XBoxApp.as:533]
      at flash.events::EventDispatcher/dispatchEventFunction()
      at flash.events::EventDispatcher/dispatchEvent()
      at flash.net::URLLoader/onComplete()
public function startDownload( evt:Event )
		{
			this.hideDownloadscreens(evt);
		
			file.addEventListener( Event.SELECT, dirSelected );
			file.browseForDirectory( "Select a directory" );
		}
		
		//--------------------------------------------------------------------------------
		// Open a directory selection window
		public function dirSelected( evt:Event )
		{
			if ( this.fileList.length > 0 )
			{
				this.currentFile = 0;
				driveNum = 0;
				var drive:String = "";
				this.loadFile(drive);
			}
		}
		
 
 
public function loadFile(drive:String):void
		{
			
			
			var filename2:String = this.fileList[this.currentFile];
			var byteLoader:URLLoader = new URLLoader();
		
			byteLoader.dataFormat = URLLoaderDataFormat.BINARY;
			byteLoader.addEventListener( Event.COMPLETE, onDownloaded );
			byteLoader.addEventListener( SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler );
			byteLoader.addEventListener( HTTPStatusEvent.HTTP_STATUS, httpStatusHandler );
			byteLoader.addEventListener( IOErrorEvent.IO_ERROR, ioErrorHandler );
		
			var filename:String = new String();
			filename = drive + filename2;
			
			//filename = filename2;
			
			var fileRequest = new URLRequest( filename );
		
			
			trace("DIRECTORY: "+file.applicationDirectory);
			byteLoader.load( fileRequest );
			
			
		}
		

Open in new window

0
 
SavongCommented:
Well, it looks like applicationDirectory is a static property so it can be accessed like so:
File.applicationDirectory.nativePath

More info is here:
http://livedocs.adobe.com/flex/3/langref/flash/filesystem/File.html#applicationDirectory
0
 
walker6o9Author Commented:
I tried that, but it gives me the path to the storage or app directories that are created in air.

Basically, I have the air files running on DVD's, and what I need to get the drive name that the DVD is in.  So far example, for most cases, this would be a D on an E.  
0
 
SavongCommented:
AIR files can't run from a DVD so they won't have a reference to that location.  The file only "runs" from the installed files.  Your only real option for getting a location on the DVD would be to ask the user to browse, or guess a path and test for files that you expect.  There's not many provisions in AIR (at least currently) for working from optical media.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Introducing Cloud Class® training courses

Tech changes fast. You can learn faster. That’s why we’re bringing professional training courses to Experts Exchange. With a subscription, you can access all the Cloud Class® courses to expand your education, prep for certifications, and get top-notch instructions.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now