UWP StorageFile.CopyAsync() Throwing Error: "Value does not fall within the expected range."
UWP StorageFile.CopyAsync() Throwing Error: "Value does not fall within the expected range."
我正在尝试用 AppData 子目录中的新版本覆盖文件。
当前流程是用户必须select 覆盖文件,以及它所在的文件夹目录,以便我可以将它们添加到未来的访问列表中。稍后用户可以从一组图像中 select ,此时它需要复制并覆盖目标文件。我尝试执行此操作的代码如下:
// lets try to copy file to wallpaper default location.
ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;
var faToken = localSettings.Values["WallpaperStorageFileFAToken"] as string;
var faTokenFolder = localSettings.Values["WallpaperStorageFolderFAToken"] as string;
var destinationFile = await LoadExistingFileSelection(faToken);
var destinationFolder = await LoadExistingFolderSelection(faTokenFolder);
StorageFile movedFile = null;
try
{
movedFile = await imageFile.CopyAsync(destinationFolder, destinationFile.Name, NameCollisionOption.ReplaceExisting);
}
catch (Exception genEx)
{
//
}
Fa
令牌是在用户使用 FileOpenPicker
获得 StorageFile
和 FolderPicker
用于获得 StorageFolder
之后获取的目标目录。
LoadExistingFolderSelection 和 LoadExistingFileSelection 使用以下代码获取 StorageFiles
和 StorageFolder
await StorageApplicationPermissions.FutureAccessList.GetFileAsync(faToken);
和
await StorageApplicationPermissions.FutureAccessList.GetFolderAsync(faFolderToken);
问题是这一行:
imageFile.CopyAsync(destinationFolder, destinationFile.Name, NameCollisionOption.ReplaceExisting);
引发此错误:
"Value does not fall within the expected range."
仅此而已,没有别的,任何想法都会很棒。
反斜杠...老实说,这是您开发职业生涯中的那些时刻之一,您只是坐在那里叹息,因为它太愚蠢了。
所以我可以愉快地检索我想完全复制到 StorageFile
对象中的图像,其路径包含 1 个额外的反斜杠,Windows OS 文件资源管理器不会惊呆了。
目前没问题,继续 运行 复制操作,然后突然得到
“Value does not fall within the expected range.”
异常,可以说是我见过的与文件路径问题相关的最无用的异常之一。
所以你有它,反斜杠,真的仔细检查路径 属性。事后看来。通常我会删除那个问题,因为这个答案并不是什么特别好的启示。但我认为它可以作为对可怕的 反斜杠 和 UWP 的存储 API.
的警告
我正在尝试用 AppData 子目录中的新版本覆盖文件。
当前流程是用户必须select 覆盖文件,以及它所在的文件夹目录,以便我可以将它们添加到未来的访问列表中。稍后用户可以从一组图像中 select ,此时它需要复制并覆盖目标文件。我尝试执行此操作的代码如下:
// lets try to copy file to wallpaper default location.
ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;
var faToken = localSettings.Values["WallpaperStorageFileFAToken"] as string;
var faTokenFolder = localSettings.Values["WallpaperStorageFolderFAToken"] as string;
var destinationFile = await LoadExistingFileSelection(faToken);
var destinationFolder = await LoadExistingFolderSelection(faTokenFolder);
StorageFile movedFile = null;
try
{
movedFile = await imageFile.CopyAsync(destinationFolder, destinationFile.Name, NameCollisionOption.ReplaceExisting);
}
catch (Exception genEx)
{
//
}
Fa
令牌是在用户使用 FileOpenPicker
获得 StorageFile
和 FolderPicker
用于获得 StorageFolder
之后获取的目标目录。
LoadExistingFolderSelection 和 LoadExistingFileSelection 使用以下代码获取 StorageFiles
和 StorageFolder
await StorageApplicationPermissions.FutureAccessList.GetFileAsync(faToken);
和
await StorageApplicationPermissions.FutureAccessList.GetFolderAsync(faFolderToken);
问题是这一行:
imageFile.CopyAsync(destinationFolder, destinationFile.Name, NameCollisionOption.ReplaceExisting);
引发此错误:
"Value does not fall within the expected range."
仅此而已,没有别的,任何想法都会很棒。
反斜杠...老实说,这是您开发职业生涯中的那些时刻之一,您只是坐在那里叹息,因为它太愚蠢了。
所以我可以愉快地检索我想完全复制到 StorageFile
对象中的图像,其路径包含 1 个额外的反斜杠,Windows OS 文件资源管理器不会惊呆了。
目前没问题,继续 运行 复制操作,然后突然得到
“Value does not fall within the expected range.”
异常,可以说是我见过的与文件路径问题相关的最无用的异常之一。
所以你有它,反斜杠,真的仔细检查路径 属性。事后看来。通常我会删除那个问题,因为这个答案并不是什么特别好的启示。但我认为它可以作为对可怕的 反斜杠 和 UWP 的存储 API.
的警告