个人资料

跳过导航链接首页 > 博客列表 > 博客正文

UWP根据文件获取所在文件夹的操作

:

UWP根据文件获取文件夹权限,

根据文件获得路径,如无权限使用选择器让用户选择文件夹索要权限

		//打开本地文件存储路径
		public static async Task OpenFilePath(StorageFile file,string faToken = "")
		{
			//获取文件所在的文件夹路径
			var path = file.Path.Replace(@"\" + file.Name, "");
			Debug.WriteLine(path);

			//检查是否拥有文件夹权限
			try
			{
				StorageFolder folder = await StorageFolder.GetFolderFromPathAsync(path);
				Debug.WriteLine("拥有文件夹权限,打开文件夹");
				await Launcher.LaunchFolderAsync(folder);
			}
			catch (Exception ex)
			{

				Debug.WriteLine("无法获取文件夹"+ex.Message);
				var dialog = new MessageDialog("应用拥有文件权限,但无文件夹权限,请求获得文件夹权限,点击确定获取", "请求权限");
				dialog.Commands.Add(new UICommand("获取", async cmd =>
				{
					FolderPicker fPicker = new FolderPicker();
					fPicker.FileTypeFilter.Add(".txt");
					fPicker.FileTypeFilter.Add(".rtf");
					var selectedFolder=await fPicker.PickSingleFolderAsync();
					if (selectedFolder != null)
					{
						//string mruToken = Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList.Add(file, "20120716");
						// Add to FA without metadata
						var faToken1 = StorageApplicationPermissions.FutureAccessList.Add(selectedFolder);
						
					}
				}, commandId: 0));
				dialog.Commands.Add(new UICommand("拒绝", cmd => { }, commandId: 1));
				//设置默认按钮,不设置的话默认的确认按钮是第一个按钮
				dialog.DefaultCommandIndex = 0;
				dialog.CancelCommandIndex = 1;
				//获取返回值
				var result = await dialog.ShowAsync();

			}

		}


另外可 申请使用受限制的功能

broadFileSystemAccess

参考:

https://docs.microsoft.com/zh-cn/windows/uwp/packaging/app-capability-declarations





admin
最初发表2019/1/8 23:34:45 最近更新2019/1/9 2:32:40 2374
为此篇作品打分
10