AIR'de File nesneleriyle çalışmaAdobe AIR 1.0 ve üstü File nesnesi dosya sistemindeki bir dosyaya veya dizine işaretçidir. File sınıfı FileReference sınıfını genişletir. AIR'in yanı sıra Adobe® Flash® Player'da da mevcut olan FileReference sınıfı bir dosyaya işaretçiyi temsil eder, ancak File sınıfı güvenlik nedenleriyle Flash Player'da açık olmayan özellikleri ve yöntemleri ekler (tarayıcıda çalışan bir SWF dosyasında). File sınıfı hakkındaFile sınıfını aşağıdaki işlemler için kullanabilirsiniz:
Bir File nesnesi dosya yoluna işaret ettikten sonra, FileStream sınıfını kullanarak dosya verilerini okumak ve yazmak için dosya yolunu kullanabilirsiniz. File nesnesi henüz var olmayan bir dosyanın veya dizinin yoluna işaret edebilir. Böyle bir File nesnesini dosya veya dizin oluştururken kullanabilirsiniz. File nesnelerinin YollarıHer File nesnesi, yolunu tanımlayan iki özelliğe sahiptir:
File sınıfı, Mac OS, Windows ve Linux'ta standart dizinlere işaret etmek üzere statik özellikler içerir. Bu özellikler şunları içerir:
Not: Bir platform masaüstü, belgeler veya kullanıcı dizinleri için standart konumlar tanımlamıyorsa, File.documentsDirectory, File.desktopDirectory ve File.userDirectory aynı dizine başvurabilir.
Bu özelliklerin farklı işletim sistemlerinde farklı değerleri vardır. Örneğin, Mac ve Windows'ta kullanıcı masaüstü dizini için farklı yerel yollar vardır. Ancak, File.desktopDirectory özelliği her platformda uygun bir dizin yolunu gösterir. Farklı platformlarda düzgün çalışan uygulamalar yazmak için, bu özellikleri uygulama tarafından kullanılan diğer dizin ve dosyaları başvuru olarak almak için temel olarak kullanın. Sonra, yolu daraltmak için resolvePath() yöntemini kullanın. Örneğin, bu kod uygulama saklama dizinindeki preferences.xml dosyasına işaret ediyor. var prefsFile:File = File.applicationStorageDirectory; prefsFile = prefsFile.resolvePath("preferences.xml"); File sınıfı belirli bir dosya yoluna işaret etmenize izin verse de, bunu yapmak farklı platformlar üzerinde çalışmayan uygulamalara sebep olabilir. Örneğin, C:\Documents and Settings\cem\ yalnızca Windows'da çalışır. Bu sebeplerden dolayı, en iyisi File sınıfının File.documentsDirectory gibi statik özelliklerini kullanmaktır.
Bu dizinlerin gerçek yerel yolları işletim sistemine ve bilgisayar konfigürasyonuna göre değişir. Bu tabloda gösterilen yollar tipik örneklerdir. Uygulamanızın herhangi bir platformda düzgün çalışmasını sağlamak için bu dizinlere başvururken uygun statik File sınıfı özelliklerini kullanmanız gerekir. Gerçek bir AIR uygulamasında tabloda gösterilen applicationID ve filename değerleri uygulama açıklayıcısından alınır. Uygulama açıklayıcısında bir yayıncı kimliği belirtirseniz, yayıncı kimliği bu yollarda uygulama kimliğine eklenir. userName değeri yüklemeyi yapan kullanıcının hesap adıdır. AIR for TV uygulamaları için dizin görünümüAIR for TV aygıtlarındaki sistem dosyalarına güvenlik sağlamak için bir AIR uygulaması yalnızca sınırlı bir dizin kümesine erişebilir. AIR for TV, uygulamanın başka dizinlere erişmesine izin vermez. Ayrıca, AIR for TV, her AIR uygulaması için her kullanıcının kullanıcıya özel verilerini ayırır. AIR uygulaması yalnızca ActionScript 3.0 kullanımı için olan dizin adlarını kullanır. Bu adlar aygıttaki gerçek dizinleri temsil etmez. AIR for TV bu ActionScript 3.0 dizin adlarını gerçek aygıt dizinleriyle eşler. Eşleştirme AIR for TV uygulamalarını, uygulamaya ait olmayan yerel dosyalara kötü niyetle veya yanlışlıkla erişmekten korur. ActionScript 3.0 dizin adları şu şekildedir:
Bir uygulama yasaklanmış bir dizine erişmeye çalışırsa, çalışma zamanı ActionScript kodunun yakalayabileceği bir istisna atar. Aşağıdaki tablo çeşitli Dosya özellikleri ve yöntemleri için File.nativePath değerini gösterir. Değerler uygulamanın aygıtın dosya sistemiyle ilişkili sınırlı görünümünü yansıtır.
Ayrıca AIR for TV aygıtlarında aşağıdaki yöntemlerin de davranışlarını göz önünde bulundurun:
File nesnesini bir dizine işaret etmeBir File nesnesini bir dizine işaret etmesi için ayarlamanın farklı yolları vardır. Kullanıcının ana dizinine işaret etmeBir File nesnesini kullanıcının ana dizinine yönlendirebilirsiniz. Aşağıdaki kod bir File nesnesini ana dizinin AIR Test alt dizinine işaret etmesi için ayarlar: var file:File = File.userDirectory.resolvePath("AIR Test"); Kullanıcının documents dizinine işaret etmeBir File nesnesini kullanıcının documents dizinine yönlendirebilirsiniz. Aşağıdaki kod bir File nesnesini documents dizininin AIR Test alt dizinine işaret etmesi için ayarlar: var file:File = File.documentsDirectory.resolvePath("AIR Test"); Masaüstü dizinine işaret etmeBir File nesnesini masaüstüne işaret edebilirsiniz. Aşağıdaki kod bir File nesnesini masaüstünün AIR Test alt dizinine işaret etmesi için ayarlar: var file:File = File.desktopDirectory.resolvePath("AIR Test"); Uygulama depolama dizinine işaret etmeBir File nesnesini uygulama depolama dizinine işaret edebilirsiniz. Her AIR uygulaması için, uygulama depolama dizinini tanımlayan ilişkilendirilmiş, benzersiz bir yol vardır. Bu dizin her uygulama ve kullanıcı için benzersizdir. Bu dizini kullanıcıya özgü, uygulamaya özgü verileri saklamak için kullanabilirsiniz (kullanıcı verileri ve tercihler dosyaları gibi). Örneğin aşağıdaki kod bir File nesnesini uygulama depolama dizininde bulunan bir tercihler dosyası olan prefs.xml dosyasına işaret eder: var file:File = File.applicationStorageDirectory; file = file.resolvePath("prefs.xml"); Uygulama deposu dizini konumu genellikle kullanıcı adı ve uygulama kimliğine bağlıdır. Aşağıdaki dosya sistemi konumları uygulamanızda hata ayıklamaya yardımcı olmak için verilmiştir. Bu dizindeki dosyaları çözümlemek için her zaman File.applicationStorage özelliğini veya app-storage: URI şemasını kullanmanız gerekir:
Not: Bir uygulamanın yayıncı kimliği varsa, yayıncı kimliği aynı zamanda uygulama depolama dizinine giden yolun bir parçası olarak kullanılır.
File.applicationStorageDirectory ile oluşturulan bir File nesnesinin URL'si (ve url özelliği), aşağıda gösterildiği gibi app-storage URL şemasını kullanır (bkz. Desteklenen AIR URL şemaları): var dir:File = File.applicationStorageDirectory; dir = dir.resolvePath("preferences"); trace(dir.url); // app-storage:/preferences Uygulama dizinine işaret etmeBir File nesnesini uygulamanın yüklendiği, uygulama dizini olarak bilinen dizine işaret edebilirsiniz. Bu dizine File.applicationDirectory özelliğini kullanarak başvurabilirsiniz. Bu dizini uygulama tanımlayıcı dosyasını veya uygulamayla yüklenen başka kaynakları incelemek için kullanabilirsiniz. Örneğin aşağıdaki kod bir File nesnesini uygulama dizinindeki images adlı bir dizine işaret eder: var dir:File = File.applicationDirectory; dir = dir.resolvePath("images"); File.applicationDirectory ile oluşturulan bir File nesnesinin URL'si (ve url özelliği), aşağıda gösterildiği gibi app URL şemasını kullanır (bkz. Desteklenen AIR URL şemaları): var dir:File = File.applicationDirectory; dir = dir.resolvePath("images"); trace(dir.url); // app:/images Not: Android'de uygulama paketi içindeki dosyalara nativePath aracılığıyla erişilmez. nativePath özelliği boş bir dizedir. Uygulama dizinindeki dosyalara erişmek için her zaman yerel yol yerine URL'yi kullanın.
Dosya sistemi köküne işaret etmeFile.getRootDirectories() yöntemi bir Windows bilgisayarındaki C: ve bağlanmış birimler gibi tüm kök birimleri listeler. Bu yöntem, Mac OS ve Linux'ta her zaman bilgisayar için benzersiz bir kök dizin ("/" dizini) döndürür. StorageVolumeInfo.getStorageVolumes() yöntemi monte edilmiş depolama birimleri hakkında daha ayrıntılı bilgi sağlar (bkz. Depolama birimleriyle çalışma). Not: Dosya sisteminin kökü Android'de okunabilir değildir. Dizine yerel yol ile başvuran bir File nesnesi olan “/” öğesi döndürülür, ancak bu nesnenin özellikleri doğru değerlere sahip değildir. Örneğin, spaceAvailable her zaman 0 değerine sahiptir.
Açık bir dizine işaret etmeAşağıdaki örnekte olduğu gibi, File nesnesinin nativePath özelliğini ayarlayarak File nesnesini açık bir dizine işaret edebilirsiniz (Windows'ta): var file:File = new File(); file.nativePath = "C:\\AIR Test"; Önemli: Bu şekilde açık bir yola işaret etmek farklı platformlar üzerinde çalışmayan koda sebep olabilir. Örneğin, önceki örnek yalnızca Windows'da çalışır. Platformlar arası çalışan bir dizini bulmak için File nesnesinin File.applicationStorageDirectory gibi statik özelliklerini kullanabilirsiniz. Daha sonra bir göreceli yola gitmek için resolvePath() (bir sonraki kısma bakın) yöntemini kullanabilirsiniz. Göreceli yollara gitmeBelirli bir yola göreceli olan bir yol edinmek için resolvePath() yöntemini kullanabilirsiniz. Aşağıdaki kod bir File nesnesini kullanıcının ana dizininin "AIR Test" alt dizinine işaret etmesi için ayarlar: var file:File = File.userDirectory; file = file.resolvePath("AIR Test"); Ayrıca, aşağıda gösterildiği gibi File nesnesini URL dizesine bağlı bir dizine işaret etmek için de nesnenin url özelliğini kullanabilirsiniz: var urlStr:String = "file:///C:/AIR Test/"; var file:File = new File() file.url = urlStr; Daha fazla bilgi için bkz. Dosya yollarını değiştirme. Kullanıcının bir dizin seçmek için göz atmasını sağlamaFile sınıfı, kullanıcının nesneye atamak için bir dizin seçebileceği sistem iletişim kutusu sağlayan browseForDirectory() yöntemini içerir. browseForDirectory() yöntemi senkronize değildir. Kullanıcı bir dizin seçip Aç düğmesini tıklatırsa bir select olayı veya kullanıcı İptal düğmesini tıklatırsa bir cancel olayı gönderir. Örneğin aşağıdaki kod kullanıcının bir dizin seçmesine olanak tanır ve seçilirse dizin yolunu çıkarır: var file:File = new File(); file.addEventListener(Event.SELECT, dirSelected); file.browseForDirectory("Select a directory"); function dirSelected(e:Event):void { trace(file.nativePath); } Not: Android'de browseForDirectory() yöntemi desteklenmez. Bu yöntemi çağırma işleminin bir etkisi yoktur; hemen bir cancel olayı gönderilir. Kullanıcıların dizin seçmesine izin vermek için bunun yerine özel, uygulama tanımlı bir iletişim kutusu kullanmanız gerekir.
Uygulamanın çağrıldığı dizine işaret etmeUygulama çağrıldığında gönderilen InvokeEvent nesnesinin currentDirectory özelliğini işaretleyerek bir uygulamanın çağrıldığı dizin konumunu alabilirsiniz. Ayrıntılar için bkz. Komut satırı argümanlarını yakalama. File nesnesini bir dosyaya işaret etmeBir File nesnesinin işaret ettiği dosyayı ayarlamanın farklı yolları vardır. Açık dosya yoluna işaret etmeÖnemli: Açık bir yola işaret etmek farklı platformlar üzerinde çalışmayan koda sebep olabilir. Örneğin C:/foo.txt yolu yalnızca Windows'da çalışır. Platformlar arası çalışan bir dizini bulmak için File nesnesinin File.applicationStorageDirectory gibi statik özelliklerini kullanabilirsiniz. Daha sonra bir göreceli yola gitmek için resolvePath()(bkz. Dosya yollarını değiştirme) yöntemini kullanabilirsiniz. Aşağıda gösterildiği gibi File nesnesini URL dizesine bağlı bir dosyaya veya dizine işaret etmek için de nesnenin url özelliğini kullanabilirsiniz: var urlStr:String = "file:///C:/AIR Test/test.txt"; var file:File = new File() file.url = urlStr; Ayrıca URL'yi aşağıda olduğu gibi File() yapıcı işlevine de iletebilirsiniz: var urlStr:String = "file:///C:/AIR Test/test.txt"; var file:File = new File(urlStr); url özelliği her zaman URL'nin URI kodlu sürümünü döndürür (örneğin boşluklar "%20 ile değiştirilir): file.url = "file:///c:/AIR Test"; trace(file.url); // file:///c:/AIR%20Test Ayrıca açık bir yol ayarlamak için File nesnesinin nativePath özelliğini de kullanabilirsiniz. Örneğin aşağıdaki kod Windows yüklü bir bilgisayarda çalıştırıldığında, File nesnesini, C: sürücüsünün AIR Test alt dizinindeki test.txt dosyasına ayarlar: var file:File = new File(); file.nativePath = "C:/AIR Test/test.txt"; Ayrıca bu yolu aşağıda olduğu gibi File() yapıcı işlevine de iletebilirsiniz: var file:File = new File("C:/AIR Test/test.txt"); nativePath özelliği için yol sınırlayıcı olarak eğik çizgi (/) karakterini kullanın. Windows'da, ters eğik çizgi (\) karakterini de kullanabilirsiniz, ancak bunu yapmak farklı platformlar üzerinde çalışmayan uygulamalara sebep olabilir. Daha fazla bilgi için bkz. Dosya yollarını değiştirme. Bir dizindeki dosyaları numaralandırmaBir dizinin kök düzeyinde dosyalara ve alt dizinlere işaret eden File nesnelerinin bir dizisini almak için File nesnesinin getDirectoryListing() yöntemini kullanabilirsiniz. Daha fazla bilgi için bkz. Dizinleri numaralandırma. Kullanıcının bir dosya seçmek için gözatmasını sağlamaFile sınıfı, kullanıcının nesneye atamak için bir dosya seçebileceği sistem iletişim kutusu sağlayan aşağıdaki yöntemleri içerir.
Bu yöntemlerin tümü senkronize olmayan yöntemlerdir. Kullanıcı bir dosya seçtiğinde (veya browseForSave() durumunda hedef yol) browseForOpen() ve browseForSave() yöntemleri select olayını gönderir. browseForOpen() ve browseForSave() yöntemleriyle, seçimden sonra hedef File nesnesi seçili dosyalara işaret eder. Kullanıcı dosyaları seçtiğinde, browseForOpenMultiple() yöntemi bir selectMultiple olayı gönderir. selectMultiple olayı, File nesneleri dizisi olan bir files özelliğine sahip olan (seçili dosyalara işaret eden) FileListEvent türüdür. Örneğin aşağıdaki kod kullanıcıya, kullanıcının bir dosya seçebileceği “Aç” iletişim kutusunu sunar: var fileToOpen:File = File.documentsDirectory; selectTextFile(fileToOpen); function selectTextFile(root:File):void { var txtFilter:FileFilter = new FileFilter("Text", "*.as;*.css;*.html;*.txt;*.xml"); root.browseForOpen("Open", [txtFilter]); root.addEventListener(Event.SELECT, fileSelected); } function fileSelected(event:Event):void { trace(fileToOpen.nativePath); } Bir browse yöntemini çağırdığınızda uygulamada başka bir tarayıcı iletişim kutusu açıksa, çalışma zamanı bir Hata istisnası atar. Dosya yollarını değiştirmeAyrıca aşağıdaki örneklerde olduğu gibi, varolan bir File nesnesinin yolunu resolvePath() yöntemini çağırarak veya nesnenin nativePath ya da url özelliğini değiştirerek de değiştirebilirsiniz: var file1:File = File.documentsDirectory; file1 = file1.resolvePath("AIR Test"); trace(file1.nativePath); // C:\Documents and Settings\userName\My Documents\AIR Test var file2:File = File.documentsDirectory; file2 = file2.resolvePath(".."); trace(file2.nativePath); // C:\Documents and Settings\userName var file3:File = File.documentsDirectory; file3.nativePath += "/subdirectory"; trace(file3.nativePath); // C:\Documents and Settings\userName\My Documents\subdirectory var file4:File = new File(); file4.url = "file:///c:/AIR Test/test.txt"; trace(file4.nativePath); // C:\AIR Test\test.txt nativePath özelliğini kullanırken, eğik çizgi (/) karakterini dizin ayırıcı karakter olarak kullanın. Windows'da ters eğik çizgi (\) karakterini de kullanabilirsiniz, ancak bu platformlar arasında çalışmayan koda sebep olacağından bunu yapmamalısınız. Desteklenen AIR URL şemalarıAIR'de bir File nesnesinin url özelliğini tanımlarken, aşağıdaki URL şemalarından herhangi birini kullanabilirsiniz:
İki dosya arasındaki göreceli yolu bulmaİki dosya arasındaki göreceli yolu bulmak için getRelativePath() yöntemini kullanabilirsiniz: var file1:File = File.documentsDirectory.resolvePath("AIR Test"); var file2:File = File.documentsDirectory file2 = file2.resolvePath("AIR Test/bob/test.txt"); trace(file1.getRelativePath(file2)); // bob/test.txt getRelativePath() yönteminin ikinci parametresi olan useDotDot parametresi, .. sözdiziminin üst dizinleri göstermek için sonuçlarda döndürülmesine izin verir: var file1:File = File.documentsDirectory; file1 = file1.resolvePath("AIR Test"); var file2:File = File.documentsDirectory; file2 = file2.resolvePath("AIR Test/bob/test.txt"); var file3:File = File.documentsDirectory; file3 = file3.resolvePath("AIR Test/susan/test.txt"); trace(file2.getRelativePath(file1, true)); // ../.. trace(file3.getRelativePath(file2, true)); // ../../bob/test.txt Dosya adlarının kurallı sürümlerini almaWindows ve Mac OS'de dosya ve yol adları büyük/küçük harfe duyarlı değildir. Aşağıdaki örnekte iki File nesnesi aynı dosyaya işaret etmektedir: File.documentsDirectory.resolvePath("test.txt"); File.documentsDirectory.resolvePath("TeSt.TxT"); Ancak belgeler ve dizin adları büyük harf içerir. Örneğin aşağıda, aşağıdaki örneklerde olduğu gibi documents dizininde AIR Test adlı bir klasör olduğunu varsayılmıştır: var file:File = File.documentsDirectory.resolvePath("AIR test"); trace(file.nativePath); // ... AIR test file.canonicalize(); trace(file.nativePath); // ... AIR Test canonicalize() yöntemi, dosya veya dizin adı için büyük/küçük harfle yazımı doğru biçimde kullanmak üzere nativePath nesnesini dönüştürür. Büyük/küçük harfe duyarlı dosya sistemlerinde (Linux gibi), yalnızca büyük/küçük harfle yazım açısından farklı olan adlara sahip birden çok dosya bulunuyorsa, canonicalize() yöntemi, bulunan ilk dosyayla eşleşecek biçimde yolu ayarlar (dosya sistemi tarafından belirlenen düzende). Aşağıdaki örneklerde gösterildiği gibi Windows'ta kısa dosya adlarını ("8.3" adlar) uzun dosya adlarına dönüştürmek için canonicalize() yöntemini de kullanabilirsiniz: var path:File = new File(); path.nativePath = "C:\\AIR~1"; path.canonicalize(); trace(path.nativePath); // C:\AIR Test Paketlerle ve sembolik bağlarla çalışmaBirçok işletim sistemi paket dosyalarını ve sembolik bağ dosyalarını destekler: Paketler—Mac OS'de, dizinler paketler olarak belirlenebilir ve Mac OS Finder'da dizin olarak değil, tek bir dosya olarak görünebilir. Sembolik bağlar—Mac OS, Linux ve Windows Vista, sembolik bağları destekler. Sembolik bağlar bir dosyanın diskteki başka bir dosyaya veya dizine işaret etmesini sağlar. Sembolik bağlar başka adlara benzer olsa da, aynı değildir. Başka ad her zaman bir dosya olarak bildirilir (dizin olarak değil) ve başka ada veya kısayola okuma ya da yazma işlemi hiçbir zaman işaret ettiği orijinal dosyayı veya dizini etkilemez. Diğer yandan sembolik bağ tam olarak işaret ettiği dosya veya dizin gibi davranır. Bir dosya veya dizin olarak bildirilebilir ve sembolik bağa okuma veya yazma işlemi sembolik bağın kendisini değil, işaret ettiği dosyayı veya dizini etkiler. Ayrıca, Windows'ta birleşim noktasını (NTFS dosya sisteminde kullanılan) referans alan bir File nesnesine ilişkin isSymbolicLink özelliği true olarak ayarlanır. File sınıfı, bir File nesnesinin bir pakete veya sembolik bağa başvurup başvurmadığını kontrol etmek için isPackage ve isSymbolicLink özelliklerini içerir. Aşağıdaki kod kullanıcının masaüstü dizini üzerinden, paket olmayan alt dizinleri listeleyerek yinelenir: var desktopNodes:Array = File.desktopDirectory.getDirectoryListing(); for (var i:uint = 0; i < desktopNodes.length; i++) { if (desktopNodes[i].isDirectory && !!desktopNodes[i].isPackage) { trace(desktopNodes[i].name); } } Aşağıdaki kod kullanıcının masaüstü dizini üzerinden, sembolik bağlar olmayan dosyaları ve dizinleri listeleyerek yinelenir: var desktopNodes:Array = File.desktopDirectory.getDirectoryListing(); for (var i:uint = 0; i < desktopNodes.length; i++) { if (!desktopNodes[i].isSymbolicLink) { trace(desktopNodes[i].name); } } canonicalize() yöntemi, bağın başvurduğu dosyaya veya dizine işaret etmek için sembolik bir bağın yolunu değiştirir. Aşağıdaki kod kullanıcının masaüstü dizini üzerinden yinelenir ve sembolik bağlar olan dosyalar tarafından başvurulan yolları bildirir: var desktopNodes:Array = File.desktopDirectory.getDirectoryListing(); for (var i:uint = 0; i < desktopNodes.length; i++) { if (desktopNodes[i].isSymbolicLink) { var linkNode:File = desktopNodes[i] as File; linkNode.canonicalize(); trace(linkNode.nativePath); } } Bir birimdeki kullanılabilir alanı belirlemeBir File nesnesinin spaceAvailable özelliği, Dosya konumunda bayt olarak kullanılabilir olan alandır. Örneğin aşağıdaki kod uygulama depolama dizininde kullanılabilir olan alanı kontrol eder: trace(File.applicationStorageDirectory.spaceAvailable); File nesnesi bir dizine başvurursa, spaceAvailable özelliği, dizinde dosyaların kullanabileceği alanı gösterir. File nesnesi bir dosyaya başvurursa, spaceAvailable özelliği dosyanın büyütülebileceği alanı gösterir. Dosya konumu yoksa, spaceAvailable özelliği 0'a ayarlanır. File nesnesi sembolik bir bağa başvurursa, spaceAvailable özelliği sembolik bağın işaret ettiği konumdaki kullanılabilir alana ayarlanır. Genellikle bir dizin veya dosya için kullanılabilir olan alan, dizini veya dosyayı içeren birimdeki kullanılabilir alanla aynıdır. Ancak kullanılabilir alan, kotaları ve dizin başına sınırlamaları hesaba katabilir. Bir dosyayı veya dizini bir birime eklemek genellikle dosyanın gerçek boyutundan veya dizin içeriğinin boyutundan daha fazla alan gerektirir. Örneğin işletim sistemi dizin bilgilerini saklamak için daha fazla alan gerektirebilir. Veya gerekli disk kesimleri ek alan kullanabilir. Ayrıca kullanılabilir alanlar dinamik olarak değişir. Dolayısıyla bildirilen alanın tamamını dosya depolama için ayıramazsınız. Dosya sistemine yazma hakkında bilgi için bkz. Dosyaları okuma ve dosyalara yazma. StorageVolumeInfo.getStorageVolumes() yöntemi monte edilmiş depolama birimleri hakkında daha ayrıntılı bilgi sağlar (bkz. Depolama birimleriyle çalışma). Varsayılan sistem uygulamasıyla dosya açmaAIR 2'de, işletim sisteminde dosyayı açmak için kayıtlı olan uygulamayı kullanarak bir dosyayı açabilirsiniz. Örneğin, AIR uygulaması bir DOC dosyasını onu açmak için kayıtlı olan uygulamayla açabilir. Dosyayı açmak için Dosya nesnesinin openWithDefaultApplication() yöntemini kullanın. Örneğin, aşağıdaki kodlar kullanıcının masaüstündeki test.doc isimli bir dosyayı DOC dosyalar için varsayılan uygulamayla açar: var file:File = File.deskopDirectory; file = file.resolvePath("test.doc"); file.openWithDefaultApplication(); Not: Linux’ta bir dosyanın varsayılan uygulaması, dosya adı uzantısı ile değil, dosyanın MIME tipiyle belirlenir.
Aşağıdaki kod kullanıcının bir mp3 dosyasına gitmesini ve mp3 dosyaları için varsayılan uygulamayla dosyayı açmasını sağlar: var file:File = File.documentsDirectory; var mp3Filter:FileFilter = new FileFilter("MP3 Files", "*.mp3"); file.browseForOpen("Open", [mp3Filter]); file.addEventListener(Event.SELECT, fileSelected); function fileSelected(e:Event):void { file.openWithDefaultApplication(); } Uygulama dizinindeki dosyalar için openWithDefaultApplication() yöntemini kullanamazsınız. AIR bazı dosyaları openWithDefaultApplication() yöntemiyle açmanızı engeller. Windows'ta AIR, EXE veya BAT gibi bazı dosya türlerini açmanızı engeller. Mac OS ve Linux’ta AIR, belirli bir uygulamada başlatılacak dosyaları açmanızı önler. (Bunlara Mac OS’taki Terminal ve AppletLauncher ve Linux’taki csh, bash veya ruby dahildir.) openWithDefaultApplication() yöntemini kullanarak bu dosyalardan birini açmaya çalışmak bir istisnayla sonuçlanır. Engellenen dosya türlerinin tam listesi için File.openWithDefaultApplication() yönteminin dil başvuru girişine bakın. Not: Bu sınırlandırma yerel bir yükleyici kullanılarak yüklenmiş bir AIR uygulaması için geçerli değildir (masaüstüne genişletilmiş uygulama); bkz. Yerel bir yükleyicide AIR uygulaması paketleme.
|
|