我在Visual Studio Community 2015中的c#程序的最后部分,但遇到了问题。2尝试构建Visual Studio程序时出现错误
我使用这个代码来设置缓存限制:
private void DeleteOldFilesIfOverFolderLimit(string folderPath,
long folderSizeLimit,
long amountToDelete)
{
var folder = new DirectoryInfo(folderPath);
var files = folder.GetFiles();
var folderSize = files.Sum(fi => fi.Length);
if (folderSize > folderSizeLimit)
{
// Sort the list of files with the oldest first.
Array.Sort(files,
(fi1, fi2) => fi1.CreationTime.CompareTo(fi2.CreationTime));
var amountDeleted = 0L;
foreach (var file in files)
{
amountDeleted += file.Length;
file.Delete();
if (amountDeleted >= amountToDelete)
{
break;
}
}
}
}
这里是我的这是造成错误的类全码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Forge
{
class Delete
{
private void DeleteOldFilesIfOverFolderLimit(string folderPath,
long folderSizeLimit,
long amountToDelete)
{
var folder = new DirectoryInfo(folderPath);
var files = folder.GetFiles();
var folderSize = files.Sum(fi => fi.Length);
if (folderSize > folderSizeLimit)
{
// Sort the list of files with the oldest first.
Array.Sort(files,
(fi1, fi2) => fi1.CreationTime.CompareTo(fi2.CreationTime));
var amountDeleted = 0L;
foreach (var file in files)
{
amountDeleted += file.Length;
file.Delete();
if (amountDeleted >= amountToDelete)
{
break;
}
}
}
}
}
}
我不知道是否需要插入任何信息。对于我的特定程序,尽管(即文件夹路径,大小限制等)这可能是问题。
无论如何,我知道我需要将这段代码添加到一个类中,所以我去了“Program> Add Class”来创建一个类。然后我添加了代码。但是,当我去筹建方案这两个错误弹出:
错误CS0246类型或命名空间名称“的DirectoryInfo”找不到(是否缺少using指令或程序集引用?)- 线15
错误CS1579 foreach语句无法对'?'类型的变量进行操作因为'?'不包含“的GetEnumerator” 一个公共定义 - 第27行
任何人可以帮助我,告诉我什么,我做错了吗?
(PS对不起,我超级新本全编码的事情。
请显示[MCVE] *在*问题。我们不应该遵循链接来查看破损的代码。我的猜测是你没有'System.IO'的'using'指令。 –
您在程序的顶部缺少'using System.IO;',它是包含'DirectoryInfo'的命名空间。对于第二个问题,向我展示引发错误的行,我不想读取整个项目。 – Equalsk
第二个重要的DV'd文章 - 阅读[Ask]并参加[Tour]永远不会太晚,因为您对这个问题提出了新的要求 – Plutonix