Mendapatkan properti file
API penting
- StorageFile.GetBasicPropertiesAsync
- StorageFile.Properties
- StorageItemContentProperties.RetrievePropertiesAsync
Dapatkan properti—tingkat atas, dasar, dan diperluas—untuk file yang diwakili oleh objek StorageFile.
Catatan
Untuk sampel lengkap, lihat Sampel akses file.
Prasyarat
Memahami pemrograman asinkron untuk aplikasi Platform Windows Universal (UWP)
Anda dapat mempelajari cara menulis aplikasi asinkron di C# atau Visual Basic, lihat Memanggil API asinkron di C# atau Visual Basic. Untuk mempelajari cara menulis aplikasi asinkron di C++, lihat Pemrograman asinkron di C++.
Izin akses ke lokasi
Misalnya, kode dalam contoh ini memerlukan kemampuan picturesLibrary , tetapi lokasi Anda mungkin memerlukan kemampuan yang berbeda atau tidak ada kemampuan sama sekali. Untuk mempelajari selengkapnya, lihat Izin akses file.
Mendapatkan properti tingkat atas file
Banyak properti file tingkat atas dapat diakses sebagai anggota kelas StorageFile. Properti ini mencakup atribut file, jenis konten, tanggal pembuatan, nama tampilan, jenis file, dan sebagainya.
Catatan
Ingatlah untuk mendeklarasikan kemampuan gambarLibrary .
Contoh ini menghitung semua file di pustaka Gambar, mengakses beberapa properti tingkat atas setiap file.
// Enumerate all files in the Pictures library.
var folder = Windows.Storage.KnownFolders.PicturesLibrary;
var query = folder.CreateFileQuery();
var files = await query.GetFilesAsync();
foreach (Windows.Storage.StorageFile file in files)
{
StringBuilder fileProperties = new StringBuilder();
// Get top-level file properties.
fileProperties.AppendLine("File name: " + file.Name);
fileProperties.AppendLine("File type: " + file.FileType);
}
Mendapatkan properti dasar file
Banyak properti file dasar diperoleh dengan terlebih dahulu memanggil metode StorageFile.GetBasicPropertiesAsync. Metode ini mengembalikan objek BasicProperties , yang menentukan properti untuk ukuran item (file atau folder) serta kapan item terakhir diubah.
Contoh ini menghitung semua file di pustaka Gambar, mengakses beberapa properti dasar setiap file.
// Enumerate all files in the Pictures library.
var folder = Windows.Storage.KnownFolders.PicturesLibrary;
var query = folder.CreateFileQuery();
var files = await query.GetFilesAsync();
foreach (Windows.Storage.StorageFile file in files)
{
StringBuilder fileProperties = new StringBuilder();
// Get file's basic properties.
Windows.Storage.FileProperties.BasicProperties basicProperties =
await file.GetBasicPropertiesAsync();
string fileSize = string.Format("{0:n0}", basicProperties.Size);
fileProperties.AppendLine("File size: " + fileSize + " bytes");
fileProperties.AppendLine("Date modified: " + basicProperties.DateModified);
}
Mendapatkan properti file yang diperluas
Selain properti file tingkat atas dan dasar, ada banyak properti yang terkait dengan konten file. Properti yang diperluas ini diakses dengan memanggil metode BasicProperties.RetrievePropertiesAsync. (A Objek BasicProperties diperoleh dengan memanggil properti StorageFile.Properties.) Meskipun properti file tingkat atas dan dasar dapat diakses sebagai properti kelas—StorageFile dan BasicProperties, masing-masing—properti yang diperluas diperoleh dengan meneruskan kumpulan objek String IEnumerable yang mewakili nama properti yang akan diambil ke metode BasicProperties.RetrievePropertiesAsync. Metode ini kemudian mengembalikan koleksi IDictionary . Setiap properti yang diperluas kemudian diambil dari koleksi berdasarkan nama atau menurut indeks.
Contoh ini menghitung semua file di pustaka Gambar, menentukan nama properti yang diinginkan (DataAccessed dan FileOwner) dalam objek Daftar, meneruskan objek Daftar tersebut ke BasicProperties.RetrievePropertiesAsync untuk mengambil properti tersebut, lalu mengambil properti tersebut berdasarkan nama dari objek IDictionary yang dikembalikan.
Lihat Properti Windows Core untuk daftar lengkap properti file yang diperluas.
const string dateAccessedProperty = "System.DateAccessed";
const string fileOwnerProperty = "System.FileOwner";
// Enumerate all files in the Pictures library.
var folder = KnownFolders.PicturesLibrary;
var query = folder.CreateFileQuery();
var files = await query.GetFilesAsync();
foreach (Windows.Storage.StorageFile file in files)
{
StringBuilder fileProperties = new StringBuilder();
// Define property names to be retrieved.
var propertyNames = new List<string>();
propertyNames.Add(dateAccessedProperty);
propertyNames.Add(fileOwnerProperty);
// Get extended properties.
IDictionary<string, object> extraProperties =
await file.Properties.RetrievePropertiesAsync(propertyNames);
// Get date-accessed property.
var propValue = extraProperties[dateAccessedProperty];
if (propValue != null)
{
fileProperties.AppendLine("Date accessed: " + propValue);
}
// Get file-owner property.
propValue = extraProperties[fileOwnerProperty];
if (propValue != null)
{
fileProperties.AppendLine("File owner: " + propValue);
}
}
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk