Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A WinUI-alkalmazások alapértelmezés szerint hozzáférhetnek bizonyos fájlrendszer-helyekhez. Az alkalmazások a fájlválasztón keresztül vagy a képességek deklarálásával további helyekhez is hozzáférhetnek.
Helyek, amelyekhez a WinUI-alkalmazások hozzáférhetnek
Új alkalmazás létrehozásakor alapértelmezés szerint a következő fájlrendszer-helyeket érheti el:
Alkalmazástelepítési könyvtár
Az a mappa, amelyben az alkalmazás telepítve van a felhasználó rendszerében.
Az alkalmazás telepítési könyvtárában kétféleképpen érheti el a fájlokat és mappákat:
Az alkalmazás telepítési könyvtárát képviselő StorageFolder a következőképpen kérhető le:
Windows.Storage.StorageFolder installedLocation = Windows.ApplicationModel.Package.Current.InstalledLocation;#include <winrt/Windows.Storage.h> ... Windows::Storage::StorageFolder installedLocation{ Windows::ApplicationModel::Package::Current().InstalledLocation() };Ezután StorageFolder-metódusokkal elérheti a könyvtár fájljait és mappáit. A példában ez a StorageFolder a
installDirectoryváltozóban van tárolva. Az alkalmazáscsomaggal való munkáról és a címtár telepítéséről a GitHub alkalmazáscsomag-információs mintájából tudhat meg többet.Egy fájl közvetlenül az alkalmazás telepítési könyvtárából kérhető le egy alkalmazás URI-jával, például a következő módon:
using Windows.Storage; StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///file.txt"));Windows::Foundation::IAsyncAction ExampleCoroutineAsync() { Windows::Storage::StorageFile file{ co_await Windows::Storage::StorageFile::GetFileFromApplicationUriAsync(Windows::Foundation::Uri{L"ms-appx:///file.txt"}) }; // Process file }Amikor a GetFileFromApplicationUriAsync befejeződik, egy StorageFile-t ad vissza, amely az
file.txtalkalmazás telepítési könyvtárában (filea példában) található fájlt jelöli.Az URI "ms-appx:///" előtagja az alkalmazás telepítési könyvtárára utal. További információ az alkalmazás URI-jainak használatáról az URI-k tartalomhivatkozáshoz való használatával kapcsolatban.
Emellett más helyektől eltérően az alkalmazástelepítési könyvtár fájljait is elérheti néhány Win32 és COM for WinUI-alkalmazással , valamint a Microsoft Visual Studióból származó C/C++ Standard Library-függvényekkel.
Az alkalmazás telepítési könyvtára írásvédett hely. A fájlválasztón keresztül nem férhet hozzá a telepítési könyvtárhoz.
Alkalmazásadat-helyek elérése
Azok a mappák, ahol az alkalmazás adatokat tárolhat. Ezek a mappák (helyi, roaming és ideiglenes) az alkalmazás telepítésekor jönnek létre.
Az alkalmazás adathelyéről kétféleképpen érheti el a fájlokat és mappákat:
Alkalmazásadat-mappa lekérése az ApplicationData-tulajdonságok használatával.
Használhatja például az ApplicationData-t. LocalFolder az alkalmazás helyi mappáját képviselő StorageFolder lekéréséhez:
using Windows.Storage; StorageFolder localFolder = ApplicationData.Current.LocalFolder;Windows::Storage::StorageFolder storageFolder{ Windows::Storage::ApplicationData::Current().LocalFolder() };Ha hozzá szeretne férni az alkalmazás roaming- vagy ideiglenes mappájához, használja helyette a RoamingFolder vagy az TemporaryFolder tulajdonságot.
Miután lekért egy alkalmazásadat-helyet képviselő StorageFoldert , a StorageFolder metódusokkal elérheti az adott helyen lévő fájlokat és mappákat. A példában ezek a StorageFolder-objektumok a
localFolderváltozóban vannak tárolva. Az alkalmazásadat-helyek használatáról az ApplicationData osztálylapján található útmutatóból, valamint az alkalmazásadat-minta GitHubról való letöltésével tudhat meg többet.A fájlokat közvetlenül az alkalmazás helyi mappájából is lekérheti egy alkalmazás URI-jával, például a következő módon:
using Windows.Storage; StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appdata:///local/file.txt"));Windows::Storage::StorageFile file{ co_await Windows::Storage::StorageFile::GetFileFromApplicationUriAsync(Windows::Foundation::Uri{ L"ms-appdata:///local/file.txt" }) }; // Process fileAmikor a GetFileFromApplicationUriAsync befejeződik, egy StorageFile-t ad vissza, amely az
file.txtalkalmazás helyi mappájában található fájlt jelöli (filea példában).Az URI "ms-appdata:///local/" előtagja az alkalmazás helyi mappájára hivatkozik. Az alkalmazás központi vagy ideiglenes mappáiban lévő fájlok eléréséhez használja az "ms-appdata:///roaming/" vagy az "ms-appdata:///temporary/" parancsot. Az alkalmazás URI-kkal kapcsolatos további tudnivalókat a Fájlerőforrások betöltése című témakörben talál.
Emellett a többi helytől eltérően az alkalmazás adathelyein lévő fájlokat is elérheti néhány Win32 és COM winUI-alkalmazással , valamint a Visual Studió C/C++ standard könyvtárfüggvényeivel.
A fájlválasztón keresztül nem érheti el a helyi, a barangolási vagy az ideiglenes mappákat.
Cserélhető eszközök elérése
Emellett az alkalmazás alapértelmezés szerint hozzáférhet a csatlakoztatott eszközök egyes fájljaihoz. Ez akkor lehetséges, ha az alkalmazás az AutoPlay bővítmény használatával automatikusan elindul, amikor a felhasználók csatlakoztatnak egy eszközt, például egy kamerát vagy egy USB-meghajtót a rendszerükhöz. Az alkalmazás által elérhető fájlok meghatározott fájltípusokra korlátozódnak, amelyek az alkalmazásjegyzék fájltípus-társítás deklarációiban vannak megadva.
Természetesen a cserélhető eszközökön lévő fájlokhoz és mappákhoz is hozzáférhet, ha meghívja a fájlválasztót (a FileOpenPicker és a FolderPicker használatával), és lehetővé teszi a felhasználó számára, hogy az alkalmazás fájljait és mappáit elérhesse. Megtudhatja, hogyan használhatja a fájlválasztót a fájlok és mappák választóval történő megnyitásához.
Megjegyzés:
További információ az SD-kártya vagy más cserélhető eszközök eléréséről: Access the SD card.
A felhasználó Letöltések mappája
Az a mappa, amelyben a letöltött fájlok alapértelmezés szerint vannak mentve.
Alapértelmezés szerint az alkalmazás csak a felhasználó által létrehozott Letöltések mappában lévő fájlokat és mappákat érheti el. A felhasználó Letöltések mappájában lévő fájlokhoz és mappákhoz azonban egy fájlválasztó (FileOpenPicker vagy FolderPicker) meghívásával férhet hozzá, így a felhasználók navigálhatnak és kiválaszthatják az alkalmazás számára elérhető fájlokat vagy mappákat.
A következő módon hozhat létre fájlt a felhasználó Letöltések mappájában:
using Windows.Storage; StorageFile newFile = await DownloadsFolder.CreateFileAsync("file.txt");Windows::Storage::StorageFile newFile{ co_await Windows::Storage::DownloadsFolder::CreateFileAsync(L"file.txt") }; // Process fileDownloadsFolder. A CreateFileAsync túlterhelt, így megadhatja, hogy mit kell tennie a rendszernek, ha már van egy meglévő fájl a Letöltések mappában, amelynek ugyanaz a neve. Ha ezek a metódusok befejeződnek, egy StorageFile-t adnak vissza, amely a létrehozott fájlt jelöli. Ennek a fájlnak a neve a példában
newFile.Hozzon létre almappát a felhasználó 'Letöltések' mappájában a következő módon:
using Windows.Storage; StorageFolder newFolder = await DownloadsFolder.CreateFolderAsync("New Folder");Windows::Storage::StorageFolder newFolder{ co_await Windows::Storage::DownloadsFolder::CreateFolderAsync(L"New Folder") }; // Process folderDownloadsFolder. A CreateFolderAsync túlterhelt, így megadhatja, hogy mit kell tennie a rendszernek, ha már van egy meglévő almappája a Letöltések mappában, amelynek ugyanaz a neve. Ha ezek a metódusok befejeződnek, a létrehozott almappát jelképező StorageFoldert adnak vissza. Ennek a fájlnak a neve a példában
newFolder.
További helyek elérése
Az alapértelmezett helyeken kívül az alkalmazások további fájlokat és mappákat is hozzáférhetnek az alkalmazásjegyzékben található képességek deklarálásával , vagy egy fájlválasztó meghívásával , hogy a felhasználó az alkalmazás számára fájlokat és mappákat válasszon.
Az AppExecutionAlias bővítményt deklaráló alkalmazások fájlrendszer-engedélyekkel rendelkeznek attól a könyvtártól, amelyről a konzolablakban indulnak el, és lefelé.
Fájlokhoz és mappákhoz való hozzáférés megőrzése
Amikor az alkalmazás lekéri a fájlt vagy mappát egy jelölőn, egy fájlaktiváláson, egy húzási műveleten stb. keresztül, az csak az alkalmazás leállításáig fér hozzá az adott fájlhoz vagy mappához. Ha a jövőben automatikusan hozzá szeretne férni a fájlhoz vagy mappához, hozzáadhatja a FutureAccessListhez , hogy az alkalmazás a jövőben könnyen hozzáférhessen az adott elemhez. A MostRecentlyUsedList használatával egyszerűen kezelheti a legutóbb használt fájlok listáját.
Egyéb helyek elérésének lehetőségei
Az alábbi táblázat felsorolja azokat a további helyeket, amelyeket egy vagy több képesség deklarálásával és a társított Windows.Storage API használatával érhet el.
| Elhelyezkedés | Képesség | Windows.Storage API |
|---|---|---|
| Minden fájl, amelyhez a felhasználónak hozzáférése van. Például: dokumentumok, képek, fényképek, letöltések, asztali, OneDrive stb. | broadFileSystemAccess Ez egy korlátozott képesség. Az Access a Beállítások > adatvédelmi >fájlrendszerben konfigurálható. Mivel a felhasználók bármikor engedélyt adhatnak vagy tagadhatnak meg a Beállításokban, gondoskodnia kell arról, hogy az alkalmazás rugalmas legyen ezekre a módosításokra. Ha úgy találja, hogy az alkalmazás nem rendelkezik hozzáféréssel, kérheti a felhasználót, hogy módosítsa a beállítást a Windows fájlrendszer hozzáférésére és adatvédelmi cikkére mutató hivatkozással. Vegye figyelembe, hogy a felhasználónak be kell zárnia az alkalmazást, be kell állítania a beállítást, és újra kell indítania az alkalmazást. Ha az alkalmazás futása közben váltják a beállítást, a platform felfüggeszti az alkalmazást, hogy menthesse az állapotot, majd kényszerítve állítsa le az alkalmazást az új beállítás alkalmazásához. A 2018. áprilisi frissítésben az engedély alapértelmezett értéke be van kapcsolva. A 2018. októberi frissítésben az alapértelmezett érték ki van kapcsolva. Ha olyan alkalmazást küld az Áruházba, amely deklarálja ezt a képességet, további leírást kell adnia arról, hogy az alkalmazásnak miért van szüksége erre a képességre, és hogyan kívánja használni. Ez a funkció a Windows.Storage névtérBEN lévő API-k esetében működik. A cikk végén található Példa szakaszban talál egy példát arra, hogyan engedélyezheti ezt a képességet az alkalmazásban. Megjegyzés: Ez a funkció xboxos konzolon nem támogatott. |
nincs adat |
| Dokumentumok | dokumentumkönyvtár Megjegyzés: Olyan fájltípus-társításokat kell hozzáadnia az alkalmazásjegyzékhez, amelyek meghatározott fájltípusokat deklarálnak, amelyeket az alkalmazás ezen a helyen érhet el. Használja ezt a képességet, ha az alkalmazás: – Platformfüggetlen hozzáférést biztosít adott OneDrive-tartalmakhoz érvényes OneDrive URL-címek vagy erőforrás-azonosítók használatával – Automatikusan menti a megnyitott fájlokat a felhasználó OneDrive-jára offline állapotban |
KnownFolders.DocumentsLibrary |
| Zene | zeneiKönyvtár A Fájlok és mappák a Zene, Képek és Videók tárakban is látható. |
KnownFolders.MusicLibrary |
| Pictures | képtár A Fájlok és mappák a Zene, Képek és Videók tárakban is látható. |
KnownFolders.PicturesLibrary |
| Videók | Videók könyvtára A Fájlok és mappák a Zene, Képek és Videók tárakban is látható. |
KnownFolders.VideosLibrary |
| Cserélhető eszközök | cserélhető tároló Megjegyzés: Olyan fájltípus-társításokat kell hozzáadnia az alkalmazásjegyzékhez, amelyek meghatározott fájltípusokat deklarálnak, amelyeket az alkalmazás ezen a helyen érhet el. Lásd még A SD kártya elérése. |
KnownFolders.RemovableDevices (eltávolítható eszközök) |
| Házi csoport könyvtárai | Az alábbi képességek közül legalább egyre van szükség. - musicLibrary - képtár - videók könyvtára |
KnownFolders.HomeGroup |
| Médiakiszolgáló-eszközök (DLNA) | Az alábbi képességek közül legalább egyre van szükség. - musicLibrary - képkönyvtár - videótár |
KnownFolders.MediaServerDevices |
| Univerzális elnevezési konvenció (UNC) mappák | A következő képességek kombinációjára van szükség. Az otthoni és munkahelyi hálózatok képessége: - privateNetworkClientServer És legalább egy internetes és nyilvános hálózati képesség: - internetClient - internetClientServer És ha alkalmazható, a tartományi hitelesítő adatok képessége: - vállalati hitelesítés Megjegyzés: Olyan fájltípus-társításokat kell hozzáadnia az alkalmazásjegyzékhez, amelyek meghatározott fájltípusokat deklarálnak, amelyeket az alkalmazás ezen a helyen érhet el. |
Mappa lekérése a következő használatával: StorageFolder.GetFolderFromPathAsync Fájl lekérése a következő használatával: StorageFile.GetFileFromPathAsync |
Example
Ez a példa hozzáadja a korlátozott broadFileSystemAccess képességet. A képesség megadása mellett hozzá kell adni a rescap névteret, és a IgnorableNamespaces-hez is hozzá kell adni.
<Package
...
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap mp rescap">
...
<Capabilities>
<rescap:Capability Name="broadFileSystemAccess" />
</Capabilities>
Megjegyzés:
Az alkalmazásképességek teljes listáját az alkalmazásképesség-deklarációkban találja.
Windows developer