Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 类来检查文件夹中是否存在文件_C#_Class - Fatal编程技术网

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

我是C#的新手,我写了以下课程:

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:理想情况下,你应该考虑不同类的对象——为静态方法创建一个新类相对来说没有什么意义,除非它将从其他几个类中使用,并且你想要一个中心位置。您通常会创建一个类来封装一组状态信息和作用于该状态的行为。您可能会为您正在讨论的信息创建一个类,但在这种情况下是否值得,还不清楚。谢谢。。我将选择你的答案作为我的首选答案。非常感谢。:)我学到了很多。