Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
WinUI uygulamaları, sıkça kullanılan dosya işlemleri için Windows Runtime (WinRT) API'lerini kullanarak dosya ve klasörlere erişebilir. Bu makalede dosya ve klasörleri access, sistem kitaplıklarını sorgulama, dosya özelliklerini alma ve Resimler ve Belgeler gibi konumlarla çalışma işlemleri gösterilmektedir.
Paketlenmiş WinUI uygulamaları oluştururken, belirli konumlardaki dosya ve klasörlere erişim sağlamak için WinRT API'leri kullanabilirsiniz. Bu API'ler uygulama ayarlarını okumanızı ve yazmanızı, dosya ve klasör seçicileri açmanızı ve Video ve Müzik kitaplıkları gibi korumalı konumlarla çalışmanızı sağlar. Ayrıca WinRT API'lerini Windows SDK'sından Win32 API'leri ve .NET SDK'sından API'ler ile birleştirebilirsiniz.
Bu makale WinRT storage API'lerine odaklanır ve şunların nasıl yapılacağını gösterir:
- Sistem kitaplıklarındaki dosya ve klasörleri sorgulama
- Boyut ve değişiklik tarihi gibi temel dosya özelliklerini alma
- Resimler kitaplığındaki değişiklikleri izleme
Dosya ve klasörleri sorgulama
Aşağıdaki örnekte, dosya ve klasörler için Documents kitaplığını sorgulamak için StorageFolder ve StorageFile API'lerinin nasıl kullanılacağı gösterilmektedir. Örnek, GetFilesInFolderAsync yöntemini kullanarak klasör yapısında özyinelemeli olarak yineleme yapar ve dosya adlarını bir StringBuilder nesnesine ekler.
using System.Text;
using Windows.Storage;
...
private async Task<string> GetDocumentsContentsAsync()
{
StorageFolder docsFolder = KnownFolders.DocumentsLibrary;
StringBuilder outputBuilder = new();
await GetFilesInFolderAsync(docsFolder, outputBuilder);
return outputBuilder.ToString();
}
private async Task GetFilesInFolderAsync(StorageFolder folder, StringBuilder outputBuilder)
{
IReadOnlyList<IStorageItem> storageItem = await folder.GetItemsAsync();
foreach (var item in storageItem)
{
if (item is StorageFolder)
{
await GetFilesInFolderAsync(item as StorageFolder, outputBuilder);
}
else
{
outputBuilder.AppendLine($"Found {item.Name} in folder {folder.Name}");
}
}
}
Temel dosya özelliklerini alma
Aşağıdaki örnek, önceki örnekteki GetFilesInFolderAsync yöntemini alır ve her dosya için değiştirilen dosya boyutunu ve tarihini alma özelliğini ekler. Örnek, BasicProperties API'sini kullanarak her dosya için değiştirilen dosya boyutunu ve tarihi alır, dosya boyutunu biçimlendirir ve değiştirilen boyutu ve tarihi her dosya ve klasör adından sonra StringBuilder nesnesine ekler.
using System.Text;
using Windows.Storage;
using Windows.Storage.FileProperties;
...
private async Task GetFilesInFolderAsync(StorageFolder folder, StringBuilder outputBuilder)
{
IReadOnlyList<IStorageItem> storageItem = await folder.GetItemsAsync();
foreach (var item in storageItem)
{
if (item is StorageFolder)
{
await GetFilesInFolderAsync(item as StorageFolder, outputBuilder);
}
else
{
outputBuilder.AppendLine($"Found {item.Name} in folder {folder.Name}");
// Append each file's size and date modified.
BasicProperties basicProperties = await item.GetBasicPropertiesAsync();
string fileSize = string.Format("{0:n0}", basicProperties.Size);
outputBuilder.AppendLine($" - File size: {fileSize} bytes");
outputBuilder.AppendLine($" - Date modified: {basicProperties.DateModified}");
}
}
}
Resimler Kütüphanesi ile Çalışma
Bu örnekte uygulama, Resimler kitaplığı güncelleştirildiğinde bildirim alacak şekilde yapılandırılmıştır. Örnek, StorageLibrary API'sini, Pictures kitaplığını almak için ve DefinitionChanged olayını, kitaplık güncellendiğinde bildirim almak için kullanır. Geçerli DefinitionChanged kitaplıktaki klasör listesi değiştiğinde olay tetiklenir. Örnek, Folders kitaplığındaki klasörleri dolaşmak için kitaplığın özelliğini kullanır ve klasör adını konsola yazar.
using Windows.Storage;
...
private async Task Configure()
{
StorageLibrary picturesFolder = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Pictures);
picturesFolder.DefinitionChanged += picturesFolder_DefinitionChanged;
}
private void picturesFolder_DefinitionChanged(StorageLibrary sender, object args)
{
foreach (StorageFolder item in sender.Folders)
{
Console.WriteLine($"Folder {item.Name} found.");
}
}
Ayrıca bakınız
Windows App SDK ve .NET API'lerini kullanarak dosya ve klasörlere erişin
Windows developer