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确实复制了引用表