Çalışma zamanı size yerel dosya sistemindeki dizinlerle çalışmaya yönelik özellikler sağlar.
Dizinlere işaret eden File nesneleri oluşturma hakkında bilgi için bkz.
File nesnesini bir dizine işaret etme
.
Dizin oluşturma
File.createDirectory()
yöntemi bir dizin oluşturmanızı sağlar. Örneğin aşağıdaki kod, kullanıcının ana dizininin alt dizini olarak AIR Test adlı bir dosya oluşturur.
var dir:File = File.userDirectory.resolvePath("AIR Test");
dir.createDirectory();
Dizin varsa,
createDirectory()
yöntemi bir işlem gerçekleştirmez.
Ayrıca bazı modlarda FileStream nesnesi dosyaları açarken dizin oluşturur. Bir FileStream örneğini
FileMode.APPEND
veya
FileMode.WRITE
olarak ayarlı
FileStream()
yapıcı kümesinin
fileMode
parametresiyle başlattığınızda, eksik dizinler oluşturulur. Daha fazla bilgi için bkz.
Dosyaları okuma ve dosyalara yazma için iş akışı
.
Geçici bir dizin oluşturma
File sınıfı, aşağıdaki örnekte olduğu gibi Sistem için geçici bir dizin klasöründe bir dizin oluşturan
createTempDirectory()
yöntemini içerir.
var temp:File = File.createTempDirectory();
createTempDirectory()
yöntemi otomatik olarak benzersiz bir geçici dizin oluşturur. (Yeni bir benzersiz konum belirlemekle uğraşmamış olursunuz.)
Geçici bir dizini, bir uygulama oturumu için kullanılan geçici dosyaları geçici olarak saklamak için kullanabilirsiniz. Sistem geçici dizininde yeni, benzersiz geçici dosyalar oluşturmak için bir
createTempFile()
yöntemi bulunduğunu unutmayın.
Tüm aygıtlarda otomatik olarak
silinmediğinden
, uygulamayı kapatmadan önce geçici dizini silmek isteyebilirsiniz.
Dizinleri numaralandırma
Bir dizindeki dosyalara ve alt klasörlere işaret eden bir File nesneleri dizisini almak için, File nesnesinin
getDirectoryListing()
veya
getDirectoryListingAsync()
yöntemini kullanabilirsiniz.
Örneğin aşağıdaki kod kullanıcının documents dizininin (alt dizinleri incelemeden) içeriğini listeler.
var directory:File = File.documentsDirectory;
var contents:Array = directory.getDirectoryListing();
for (var i:uint = 0; i < contents.length; i++)
{
trace(contents[i].name, contents[i].size);
}
Yöntemin senkronize olmayan sürümünü kullanırken,
directoryListing
olay nesnesi, dizinlerle ilgili File nesnelerinin dizisi olan bir
files
özelliğine sahiptir:
var directory:File = File.documentsDirectory;
directory.getDirectoryListingAsync();
directory.addEventListener(FileListEvent.DIRECTORY_LISTING, dirListHandler);
function dirListHandler(event:FileListEvent):void
{
var contents:Array = event.files;
for (var i:uint = 0; i < contents.length; i++)
{
trace(contents[i].name, contents[i].size);
}
}
Dizinleri kopyalama ve taşıma
Bir dizini, bir dosyayı kopyalamak veya taşımak için kullanacağınız yöntemlerin aynılarını kullanarak kopyalayabilir veya taşıyabilirsiniz. Örneğin aşağıdaki kod bir dizini senkronize olarak kopyalar:
var sourceDir:File = File.documentsDirectory.resolvePath("AIR Test");
var resultDir:File = File.documentsDirectory.resolvePath("AIR Test Copy");
sourceDir.copyTo(resultDir);
copyTo()
yönteminin
overwrite
parametresi için true değerini belirttiğinizde, mevcut bir hedef dizindeki tüm dosyalar ve klasörler silinir ve yerine kaynak dizindeki dosyalar ve klasörler konur (hedef dosya kaynak dizinde olmasa bile).
copyTo()
yönteminin
newLocation
parametresi olarak belirttiğiniz dizin, sonuçta oluşan dizinin yolunu belirtir; sonuçta oluşan dizini içerecek olan
üst
dizini
belirtmez
.
Ayrıntılar için bkz.
Dosyaları kopyalama ve taşıma
.
Dizin içeriğini silme
File sınıfı bir
deleteDirectory()
ve bir
deleteDirectoryAsync()
yöntemi içerir. İlki senkronize, ikincisi senkronize olmayan bir şekilde çalışan bu yöntemler dizinleri siler (bkz.
AIR dosyası temel bilgileri
). Her iki yöntem de
deleteDirectoryContents
parametresini içerir (Boolean değeri alır); bu parametre
true
olarak ayarlıyken (varsayılan değer
false
değeridir) yönteme yapılan çağrı boş olmayan dizinleri siler; aksi takdirde yalnızca boş dizinler silinir.
Örneğin aşağıdaki kod kullanıcının documents dizininin AIR Test alt dizinini senkronize olarak siler:
var directory:File = File.documentsDirectory.resolvePath("AIR Test");
directory.deleteDirectory(true);
Aşağıdaki kod kullanıcının documents dizininin AIR Test alt dizinini senkronize olmayan bir şekilde siler:
var directory:File = File.documentsDirectory.resolvePath("AIR Test");
directory.addEventListener(Event.COMPLETE, completeHandler)
directory.deleteDirectoryAsync(true);
function completeHandler(event:Event):void {
trace("Deleted.")
}
Ayrıca, bir dizini Sistem çöp kutusuna taşımak için kullanabileceğiniz
moveToTrash()
ve
moveToTrashAsync()
yöntemleri de bulunmaktadır. Ayrıntılar için bkz.
Bir dosyayı çöp kutusuna taşıma
.
|
|
|