如何删除没有扩展名的文件?
c#
我正在开发一个程序,程序应该删除缓存。唯一的问题是缓存中的所有文件都没有扩展名,并且总是在我尝试删除这些文件时出现异常:The access to the path 'path' was denied.所以我不知道为什么会发生此错误,因为我正在尝试删除文件而不是目录。我认为由于缺少扩展名,它无法将文件识别为文件。我已经尝试过:
DirectoryInfo cache = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"Cache");
Console.WriteLine("Deleting Cache...");
foreach (var fi in cache.GetFiles())
{
File.Delete(cache + @"" + fi.Name);
Console.WriteLine(cache + @"" + fi.Name);
}
Console.ReadKey();
我还能尝试什么?
回答
您的文件似乎仍处于打开状态,因此您无法删除它。但是,我原来的答案仍然适用:
由于您已经有了DirectoryInfo,您不需要连接字符串来获取文件名,只需使用FileInfo.Delete:
foreach (var fi in cache.GetFiles())
{
fi.Delete();
}
无论如何,您应该避免连接字符串以构建路径,请使用Path.Combine:
DirectoryInfo cache = new DirectoryInfo(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Cache"));