gpt4 book ai didi

c# - 为什么在尝试删除文件时会出现参数异常?

转载 作者:太空宇宙 更新时间:2023-11-03 21:44:33 25 4
gpt4 key购买 nike

我正在运行以下代码来删除一个确实存在的文件:

 try
{
var folder = ApplicationData.Current.LocalFolder;
var path = rendition.OfflineLocation.Replace(folder.Path, "");
var file = await folder.GetFileAsync(path);
await file.DeleteAsync();
}
catch (FileNotFoundException)
{

}

当它运行 file.DeleteAsync(); 时给出一个 ArgumentException,消息 Value does not fall in the expected range.

我无法在任何地方找到我为什么会得到这个的任何信息。有什么想法吗?

调用堆栈:

at Windows.Storage.StorageFile.DeleteAsync() at Lightning.Services.DownloaderService.d__36.MoveNext() in e:\\Services\DownloaderService.cs:line 120

第 120 行是 DeleteAsync 行。

最佳答案

我怀疑您的 path 值有问题。我已经写了一个 blogpost关于这个主题,因为 WinRT 异常可能非常不一致且具有误导性。

我建议您做两件事来帮助您弄清楚事情的真相:

  1. 检查 StorageFile.Path 属性的值并确保其中没有双重 \ 并且它确实指向 ApplicationData.Current.LocalFolder 文件夹。
  2. 尝试调用 FileIO.ReadBufferAsync用同样的路径。您可能会得到更好的异常(exception)。

此外,为什么不直接调用 StorageFile.GetFileFromPathAsync如果您已经有了完整路径而不是操作字符串?

关于c# - 为什么在尝试删除文件时会出现参数异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17730536/

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