gpt4 book ai didi

xaml - 如何在 Windows Phone 8.1 应用程序 list 中添加文件类型关联?

转载 作者:行者123 更新时间:2023-12-02 09:37:11 24 4
gpt4 key购买 nike

我正在尝试使用以下代码访问 KnownFolders.MusicLibrary 中的文件。

    internal async void Update()
{
StorageFolder rootFolder = KnownFolders.MusicLibrary;
ScanFolder(rootFolder);
}

private async void ScanFolder(StorageFolder storageFolder)
{
var items = await storageFolder.GetItemsAsync();

foreach (var item in items)
{
if (item is StorageFolder)
{
ScanFolder(item as StorageFolder);
}
else if (item is StorageFile)
{
var fs = new FileStream(item.Path, FileMode.Open, FileAccess.Read);
< ... snip ... >
}
}
}

我检查了 MusicLibrary 功能,以便可以使用 KnownFolders.MusicLibrary。但这似乎并没有授予我对库的文件访问权限,因为我收到以下错误:

+       [System.UnauthorizedAccessException]    

{System.UnauthorizedAccessException: Access to the path 'C:\Data\Users\Public\Music\tmp' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at MusicTrackerPhone.Library.<ScanFolder>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__3(Object state)} System.UnauthorizedAccessException

无法通过 GUI 添加文件类型关联(xml 中也不允许添加该节点)。

enter image description here

enter image description here

如何为我的应用添加所需的声明?

完整的Package.appxmanifest:

<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest" xmlns:m2="http://schemas.microsoft.com/appx/2013/manifest" xmlns:m3="http://schemas.microsoft.com/appx/2014/manifest" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest">
<Identity Name="aad31163-0d67-49ba-b569-80ff4d773fa0" Publisher="CN=Benjamin" Version="1.0.0.0" />
<mp:PhoneIdentity PhoneProductId="2e54a5f6-5319-4dd2-9bad-1fe5290a0eeb" PhonePublisherId="1b03f58e-5a39-414f-9324-2cab834debfd" />
<Properties>
<DisplayName>MusicTrackerPhone</DisplayName>
<PublisherDisplayName>Benjamin</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
<Prerequisites>
<OSMinVersion>6.3.1</OSMinVersion>
<OSMaxVersionTested>6.3.1</OSMaxVersionTested>
</Prerequisites>
<Resources>
<Resource Language="x-generate" />
</Resources>
<Applications>
<Application Id="x2e54a5f6y5319y4dd2y9bady1fe5290a0eebx" Executable="AGHost.exe" EntryPoint="MainPage.xaml">
<m3:VisualElements DisplayName="MusicTrackerPhone" Square150x150Logo="Assets\SquareTile150x150.png" Square44x44Logo="Assets\Logo.png" Description="MusicTrackerPhone" ForegroundText="light" BackgroundColor="#464646">
<m3:DefaultTile Square71x71Logo="Assets\SquareTile71x71.png">
</m3:DefaultTile>
<m3:SplashScreen Image="Assets\Splashscreen.png" />
</m3:VisualElements>
<Extensions>
<Extension Category="windows.fileTypeAssociation">
<FileTypeAssociation Name=".mp3">
<DisplayName>mp3</DisplayName>
<SupportedFileTypes>
<FileType ContentType="audio/mp3">.mp3</FileType>
</SupportedFileTypes>
</FileTypeAssociation>
</Extension>
</Extensions>
</Application>
</Applications>
<Capabilities>
<Capability Name="musicLibrary" />
<Capability Name="removableStorage" />
</Capabilities>
<Extensions>
<Extension Category="windows.activatableClass.inProcessServer">
<InProcessServer>
<Path>AgHostSvcs.dll</Path>
<ActivatableClass ActivatableClassId="AgHost.BackgroundTask" ThreadingModel="both" />
</InProcessServer>
</Extension>
</Extensions>
</Package>

最佳答案

奇怪的事情(它只涉及 WP8.1 Silverlight),但正如我所检查的,可以通过 xaml 编辑器添加文件类型关联:右键单击package.appxmanifest 文件,选择查看代码 F7。查找部分<Extensions>在你的<Application (可能就在 </m3:VisualElements> 之后)并手动添加第一个文件类型关联:

  </m3:VisualElements>
<Extensions>
<Extension Category="windows.fileTypeAssociation">
<FileTypeAssociation Name=".mp3">
<DisplayName>mp3</DisplayName>
<SupportedFileTypes>
<FileType ContentType="audio/mp3">.mp3</FileType>
</SupportedFileTypes>
</FileTypeAssociation>
</Extension>
// other extensions
</Extensions>

添加第一个文件类型关联后,您将能够通过 GUI 添加下一个文件类型关联 - 从现在开始,它将在支持的声明中提供。

enter image description here

关于xaml - 如何在 Windows Phone 8.1 应用程序 list 中添加文件类型关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24416244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com