CodeGo.net>有没有办法以管理员权限运行UWP应用程序?

我已经在Visual Studio中使用Windows通用平台工具创建了一个应用程序.在此应用程序中,我必须重命名用户选择的文件,但是在调试时出现“权限被拒绝”异常.

包装后&在计算机上安装我没有选择以管理员身份运行它.

我已进行了尽可能多的搜索,但互联网上似乎没有任何可用的解决方案,或者我错过了可能解决此问题的任何查询.

我在清单文件中看不到与存储相关的任何类型的权限:(

码:
(编辑:这是现在的工作代码)

            FolderPicker folderPicker = new FolderPicker();
        folderPicker.SuggestedStartLocation = PickerLocationId.Desktop;
        folderPicker.FileTypeFilter.Add("*");
        folderPicker.ViewMode = PickerViewMode.List;
        StorageFolder folderPicked = await folderPicker.PickSingleFolderAsync();

        if (folderPicked != null)
        {

            t_output.Text = folderPicked.Path.ToString();
            StringBuilder outputText = new StringBuilder();
            IReadOnlyList<StorageFile> fileList =
            await folderPicked.GetFilesAsync();
            int i=0;
             foreach (StorageFile file in fileList)
            {
                outputText.Append(file.Name + "\n");
                StorageFile fs = await folderPicked.GetFileAsync(file.Name);
                await fs.RenameAsync("tanitani0" + i + ".jpg");
                i++;

            }

我正在使用t_output.Text TextBox来验证每个&一切都按我的预期进行,如果我不使用File.Copy,那么每个文件都会从所选文件夹中列出,就像我想要的那样.但是File.Copy :(如果我直接使用File.Move,则会出现权限被拒绝的问题,那么我将获得File Not Found Exception.

解决这类问题的方法是什么?

解决方法:

UWP中有一些文件系统限制,您遇到了其中之一.通过访问该文件夹,您必须继续使用该StorageFolder实例进行修改.

要创建文件的副本,请使用folderPicked.CreateFileAsync(path)并使用从该方法返回的StorageFile复制流数据.但是,由于您可以访问目录中的各个文件,因此可以利用StorageFile接口并异步执行操作.以下是允许的方法列表:

https://docs.microsoft.com/en-us/uwp/api/windows.storage.storagefile

使用File.Copy(…)仅在隔离的存储/应用程序数据目录中有效.仅仅因为您具有folderPicked,并不意味着File.Copy(…)有权访问.

代码示例:

foreach (StorageFile file in fileList)
{
    outputText.Append(file.Name + "\n");
    int i = 0;

    await file.CopyAsync(pickedFolder, "tani" + i + ".jpg");
    i++;
}

附带一提,您的int i值将始终为零.只要确保它在循环之外即可继续增加.

int i = 0;

foreach (StorageFile file in fileList)
{
    outputText.Append(file.Name + "\n");        
    await file.CopyAsync(pickedFolder, "tani" + i + ".jpg");
    i++;
}
上一篇:通用应用程序中未处理的异常处理程序中的异步方法


下一篇:c#-CalendarDatePicker绑定空值