【发布时间】:2020-09-07 10:08:21
【问题描述】:
我有一个 WPF NET 核心应用程序并尝试在本地写入文件。
var movies = await GetMovies(_settings.MovieFolderId);
foreach (var movie in movies)
{
Message = $"Writing locally {movie.Name}";
var meta = Path.Combine(pathToSave, $"{movie.Name}.meta");
if (!File.Exists(meta))
{
await File.WriteAllTextAsync(meta, $"{movie.Id}\r\n{movie.Parents?.FirstOrDefault() ?? string.Empty}");
}
}
我得到了:
而meta 的值为:C:\p\bds\Con.Air.A-MVIE.meta
为什么?该迭代中的所有文件都不会发生这种情况。
【问题讨论】:
-
在 Windows 中,您无法保存名称为
con的文件。 superuser.com/q/86999/263134 -
为了扩展 Bizhan 的评论,在 Windows 上,
con(以及nul和其他一些)不能出现在路径中任何地方,并且不能形成没有扩展名的文件名基础。见docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file -
有页面这样说?
-
@KonradRudolph 不是在任何地方,你可以有
sth.con.txt,但不能有con.txt或con.sth.txt -
使用
@"\\?\" + meta。该前缀禁用 win32 名称规范化