我正在尝试比较 2 个文件名。
我构建一个文件名,然后将其与目录中的文件名进行比较。我的代码无法比较字符串。请让我知道,我做错了什么?没有错误,但字符串永远不会相等。
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(
来源 : https://msdn.microsoft.com/library/system.io.fileinfo.tostring(v=vs.110(.aspx
遗憾的是,分配给 Filename 变量的值是没有访问路径的纯文件名。因此,它不能等于FileInfo.ToString((给你的任何内容。
建议:您可以使用 aFile.Name 而不是aFile.ToString((
String.Compare 如果两个参数匹配,则返回 0。因此,如果要输入 if
,比较应根据该值进行检查。
以下是参考:
| 价值 |条件 |-------------------------- |---------------------------------------------------------------------------------|小于零 |第一个子字符串在排序顺序中的第二个子字符串之前。 |零 |子字符串在排序顺序中出现在同一位置,或者长度为零。|大于大于零 |第一个子字符串在排序顺序中跟随第二个子字符串。
如果您所做的只是检查特定文件夹中是否有特定文件,那么您可以使用具有 searchpattern 参数的GetFiles()
重载来查找似乎具有今天日期的文件:
Directory.GetFiles("c:\my\path", $"*{DateTime.Now.ToString("yyyy-MM-dd")}.xlsx");