Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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#_String - Fatal编程技术网

C# 文件名-文件路径比较

C# 文件名-文件路径比较,c#,string,C#,String,我试图比较这两个文件名 我构建一个文件名,然后将其与目录中的文件名进行比较。我的代码无法比较字符串。请让我知道,我做错了什么?没有错误,但字符串的长度永远不相等 DateTime dt = DateTime.Now; Filename = "Account Daily " + dt.ToString("yyyy-MM-dd") + " .xslx"; FileInfo[] folderFiles = null; folderFiles = dir1.GetFiles(); foreach (F

我试图比较这两个文件名

我构建一个文件名,然后将其与目录中的文件名进行比较。我的代码无法比较字符串。请让我知道,我做错了什么?没有错误,但字符串的长度永远不相等

DateTime dt = DateTime.Now;
Filename = "Account Daily " + dt.ToString("yyyy-MM-dd") + " .xslx";

FileInfo[] folderFiles = null;
folderFiles = dir1.GetFiles();
foreach (FileInfo aFile in folderFiles)
{
    if (String.Compare(aFile.ToString(),Filename) == 1)
    {
        // Send email with this attachment
    }
}
FileInfo.ToString()返回整个访问路径(例如c:/temp/file.xml)

资料来源:

不幸的是,分配给Filename变量的值是一个没有访问路径的普通文件名。因此,它不能等于FileInfo.ToString()提供给您的任何内容

建议:您可以使用aFile.Name而不是aFile.ToString()FileInfo.ToString()返回整个访问路径(例如c:/temp/file.xml)

资料来源:

不幸的是,分配给Filename变量的值是一个没有访问路径的普通文件名。因此,它不能等于FileInfo.ToString()提供给您的任何内容

建议:如果两个参数匹配,可以使用aFile.Name而不是aFile.ToString()

返回0。因此,如果要输入
if
,则比较应与该值进行检查

这里有一个参考:

| Value | Condition |-------------------------- |--------------------------------------------------------------------------------- | Less than zero | The first substring precedes the second substring in the sort order. | Zero | The substrings occur in the same position in the sort order, or length is zero. | GreaterGreater than zero | The first substring follows the second substring in the sort order. |值|条件 |-------------------------- |--------------------------------------------------------------------------------- |小于零|第一个子字符串在排序顺序中位于第二个子字符串之前。 |零|子字符串出现在排序顺序中的相同位置,或长度为零。 |大于零|第一个子字符串按排序顺序紧跟第二个子字符串。 如果两个参数匹配,则返回0。因此,如果要输入
if
,则比较应与该值进行检查

这里有一个参考:

| Value | Condition |-------------------------- |--------------------------------------------------------------------------------- | Less than zero | The first substring precedes the second substring in the sort order. | Zero | The substrings occur in the same position in the sort order, or length is zero. | GreaterGreater than zero | The first substring follows the second substring in the sort order. |值|条件 |-------------------------- |--------------------------------------------------------------------------------- |小于零|第一个子字符串在排序顺序中位于第二个子字符串之前。 |零|子字符串出现在排序顺序中的相同位置,或长度为零。 |大于零|第一个子字符串按排序顺序紧跟第二个子字符串。
如果您要做的只是检查特定文件夹中是否有特定文件,则可以使用带有searchpattern参数的
GetFiles()
重载来查找似乎具有今天日期的文件:

Directory.GetFiles("c:\\my\\path", $"*{DateTime.Now.ToString("yyyy-MM-dd")}.xlsx");

如果您要做的只是检查特定文件夹中是否有特定文件,则可以使用带有searchpattern参数的
GetFiles()
重载来查找似乎具有今天日期的文件:

Directory.GetFiles("c:\\my\\path", $"*{DateTime.Now.ToString("yyyy-MM-dd")}.xlsx");

你可以使用调试器,自己一步一步地检查代码,看看发生了什么。如果你只检查字符串是否相等,你可以在测试时使用
string1==string2
,我发现同一文件夹中的一个文件名与名称完全不匹配。“批处理作业”SP文件也是如此。不知道为什么?.1)账户日2017-11-08 2_uuu账户日2017-11-13 3)批处理作业SP_DB.xslx。@SaraDob,检查Szeki答案和他的链接。我尝试了字符串。根据@Szeki进行比较。结果仍然不匹配。您可以使用调试器并单步通过代码查看发生了什么。如果只检查字符串是否相等,则可以在测试时使用
string1==string2
,我发现相同文件夹中的一个文件名与名称完全不匹配。“批处理作业”SP文件也是如此。不知道为什么?.1)账户日2017-11-08 2_uuu账户日2017-11-13 3)批处理作业SP_DB.xslx。@SaraDob,检查Szeki答案和他的链接。我尝试了字符串。根据@Szeki进行比较。结果仍然不匹配。小注释:
FileInfo.ToString()
从链接返回绝对路径并不总是“ToString方法返回的字符串表示传递给构造函数的路径。。。例如,当您使用GetFiles方法创建FileInfo对象时,ToString方法并不表示完全限定路径。“他使用了GetFiles,因此它不会返回完整路径。小备注:
FileInfo.ToString()
从您的链接返回绝对路径不总是”ToString方法返回的字符串表示传递给构造函数的路径。。。例如,当您使用GetFiles方法创建FileInfo对象时,ToString方法并不表示完全限定路径。“他使用了GetFiles,因此它不会返回完整路径。您可以在回答中添加
字符串。如果排序顺序中第一个子字符串在第二个子字符串之前,则Compare
返回的值小于零;如果排序顺序中第一个子字符串在第二个子字符串之后,则返回的值大于零。@Magnetron确实,我复制了引用表,您可以在答案中添加
字符串。如果排序顺序中第一个子字符串在第二个子字符串之前,则Compare
返回的值小于零;如果排序顺序中第一个子字符串在第二个子字符串之后,则返回的值大于零。@Magnetron确实复制了引用表