文件名 -文件路径比较



我正在尝试比较 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");

最新更新