C# 类来检查文件夹中是否存在文件
我是C#的新手,我写了以下课程:C# 类来检查文件夹中是否存在文件,c#,class,C#,Class,我是C#的新手,我写了以下课程: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace PrinterManager { class CheckFilesExist { public class CheckFilesExist { public stat
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace PrinterManager
{
class CheckFilesExist
{
public class CheckFilesExist
{
public static bool check(bool isThere)
{
DirectoryInfo di = new DirectoryInfo("c:\temp");
FileInfo[] TXTFiles = di.GetFiles("*.xml");
if (TXTFiles.Length == 0)
{
return isThere;
}
foreach (var fi in TXTFiles)
//return (fi.Exists);
return (fi.Exists);
return check;
}
}
}
}
它应该检查目录中的*.xml文件,并将它们添加到数组中。如果它没有找到任何文件,那么它应该返回false。它将遍历数组并根据“检查”返回true或false
但我得到了以下错误:
无法将方法组“check”转换为非委托类型“bool”。做
您打算调用该方法吗
它似乎不喜欢最后的“退票”
我基本上想返回一个检查,看看文件夹中是否存在文件。
你知道为什么我的坏了吗
谢谢不,它不喜欢
退票代码>最后-您希望它做什么?您的方法是check
——因此“基于check
返回true或false”实际上没有意义。你真的想返回isThere
吗
老实说,这个参数到底是用来做什么的还不清楚。。。如果你问了一个DirectoryInfo
目录中的文件,我个人希望它们存在,否则为什么会被返回
哦,您的目录名包含一个选项卡,我怀疑您实际上想要一个反斜杠,后跟一个t
我认为你的方法会更好,因为:
public static bool TempDirectoryContainsXmlFiles()
{
DirectoryInfo di = new DirectoryInfo(@"c:\temp");
return di.GetFiles("*.xml").Length > 0;
}
或者为了清晰起见使用LINQ:
public static bool TempDirectoryContainsXmlFiles()
{
DirectoryInfo di = new DirectoryInfo(@"c:\temp");
return di.GetFiles("*.xml").Any();
}
(您可以使用BrokenGlass,它对大目录更有效,但它仅在.NET 4及更高版本中可用。)不,它不喜欢返回检查代码>最后-您希望它做什么?您的方法是check
——因此“基于check
返回true或false”实际上没有意义。你真的想返回isThere
吗
老实说,这个参数到底是用来做什么的还不清楚。。。如果你问了一个DirectoryInfo
目录中的文件,我个人希望它们存在,否则为什么会被返回
哦,您的目录名包含一个选项卡,我怀疑您实际上想要一个反斜杠,后跟一个t
我认为你的方法会更好,因为:
public static bool TempDirectoryContainsXmlFiles()
{
DirectoryInfo di = new DirectoryInfo(@"c:\temp");
return di.GetFiles("*.xml").Length > 0;
}
或者为了清晰起见使用LINQ:
public static bool TempDirectoryContainsXmlFiles()
{
DirectoryInfo di = new DirectoryInfo(@"c:\temp");
return di.GetFiles("*.xml").Any();
}
(您可以使用BrokenGlass,它对大目录更有效,但它仅在.NET 4及更高版本中可用。)您可以使用您的方法制作一行代码:
return new DirectoryInfo(@"c:\temp").EnumerateFiles("*.xml").Any();
请注意,您要么必须使用文字字符串(前缀为@
),要么正确转义目录名,即“C:\\temp”
,您可以用方法生成一行:
return new DirectoryInfo(@"c:\temp").EnumerateFiles("*.xml").Any();
请注意,您要么必须使用文字字符串(前缀为@
),要么正确地转义目录名,即“C:\\temp”
尝试这样做
private static bool Check_file_Existence(string sFileName)
{
try
{
return File.Exists(sFileName);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return false;
}
}
像这样试试
private static bool Check_file_Existence(string sFileName)
{
try
{
return File.Exists(sFileName);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return false;
}
}
乍一看,问题在于“check”变量与函数同名…乍一看,问题在于“check”变量与函数同名…该标题似乎与实际问题无关。什么是check?为什么您有退货(fi.exist)和退货支票?返回后返回不起作用?为什么需要在阵列中循环?为什么不能用return true和return false来代替这些变量呢?这个标题似乎与实际问题无关。什么是check?为什么您有退货(fi.exist)和退货支票?返回后返回不起作用?为什么需要在阵列中循环?为什么不能用return true和return false来代替这些变量呢?太好了。。所以我不需要建立一个类?我可以用我表格上的方法来调用它吗?@PD24:可以。这里不需要单独的类。在哪种情况下我需要单独的类?我正在构建一个打印管理器,它将解析文件名GUID id,并将其与数据库中的文件上载日期时间进行比较。我需要一个类来做这些检查吗?@PD24:理想情况下,你应该考虑不同类的对象——为静态方法创建一个新类相对来说没有什么意义,除非它将从其他几个类中使用,并且你想要一个中心位置。您通常会创建一个类来封装一组状态信息和作用于该状态的行为。您可能会为您正在讨论的信息创建一个类,但在这种情况下是否值得,还不清楚。谢谢。。我将选择你的答案作为我的首选答案。非常感谢。:)我学到了很多。哦,太好了。。所以我不需要建立一个类?我可以用我表格上的方法来调用它吗?@PD24:可以。这里不需要单独的类。在哪种情况下我需要单独的类?我正在构建一个打印管理器,它将解析文件名GUID id,并将其与数据库中的文件上载日期时间进行比较。我需要一个类来做这些检查吗?@PD24:理想情况下,你应该考虑不同类的对象——为静态方法创建一个新类相对来说没有什么意义,除非它将从其他几个类中使用,并且你想要一个中心位置。您通常会创建一个类来封装一组状态信息和作用于该状态的行为。您可能会为您正在讨论的信息创建一个类,但在这种情况下是否值得,还不清楚。谢谢。。我将选择你的答案作为我的首选答案。非常感谢。:)我学到了很多。