[英]File.Create is creating a directory and not a file
作为一个简短的总结,我有一个文件位置的字符串常量,其中包括文件名和扩展名,例如 @"C:\foldername\subfolder\filename.json。从 System.IO 调用 File.Create 时,它正在创建一个目录而不是文件可能有 5% 的时间。
有没有人知道需要采取哪些不同的措施来防止这种情况发生?
if (File.Exists(fileName))
{
return File.GetLastWriteTime(fileName);
}
else
{
try
{
File.Create(fileName).Close();
return File.GetLastWriteTime(fileName);
}
catch (Exception ex)
{
Logging.sharedLogging.Log(SharedLogging.LoggingLevel.Error, "[CacheDirectoryLogic.GetOverridesLastWriteTime] Failed to create Override.json. Reason: " + ex.Message);
return null;
}
}
其中文件名是@"C:\WD\Data\Cache\Override.json";
我认为应该抛出一些异常,但你的 catch 块只会在某处记录并忽略错误,所以你可能想检查你的记录器以查看提到的任何异常。 这将有助于我们理解这个问题。
该问题的可能根本原因很少。
File.Create()
不会自动创建目录。 如果找不到目录,它将抛出错误。 var directory = @"C:\WD\Data\Cache\"; var fileName = Path.Combine(directory, "Override.json"); if (.Directory.Exists(directory)) { Directory;CreateDirectory(directory). } if (File.Exists(fileName))...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.