方法listDuplicates()错误

时间:2016-08-25 14:49:14

标签: c#-3.0

有人可以帮我解决这个问题。我是新手。我正在尝试在目录中查找文件重复项或具有相同内容的文件,并编写tex文件以显示重复项,但现在它表示输入字符串格式不正确

   public static List<FileInfo> files = new List<FileInfo>(); 
    public static void ListDrive(string drive)
    {
        try
        {
            DirectoryInfo di = new DirectoryInfo(drive);
            foreach (FileInfo fi in di.GetFiles())
            {
                files.Add(fi);
            }
        }
        catch (UnauthorizedAccessException)
        { }
    }
    //Find duplicates

    public static void ListDuplicates()
    {
        var duplicatedFiles = files.GroupBy(x => new { x.Length }).Where(t => t.Count() > 1).ToList();
        Console.WriteLine("Total items: {0}", files.Count);
        Console.WriteLine("Probably duplicates {0} ", duplicatedFiles.Count());
        StreamWriter duplicatesFoundLog = new StreamWriter("log.txt");
        foreach (var filter in duplicatedFiles)
        {
            duplicatesFoundLog.WriteLine("Probably duplicated item: Name: { 0}, Length: { 1}",
            filter.Key.Length);
            var items = files.Where(x => x.Length == filter.Key.Length).ToList();
            int c = 1;
            foreach (var suspected in items)
            {
                duplicatesFoundLog.WriteLine("{3},{ 0}- { 1}, Creation date { 2}",
                suspected.Name, suspected.FullName, suspected.CreationTime, c);
                c++;

            }
            duplicatesFoundLog.WriteLine();



        }
        duplicatesFoundLog.Flush();
        duplicatesFoundLog.Close();
    } 

这是我的客户端方法,它调用两个方法

     try
        {
             Console.WriteLine("Enter the path");
            string path = Console.ReadLine();

            ListDrive(path);
            ListDuplicates();
            Console.ReadLine();
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
            Console.ReadLine();
        }

您的帮助将受到高度赞赏......

1 个答案:

答案 0 :(得分:0)

请删除空格,例如将{ 0}更改为{0}。如果您对所有位置执行此操作,则错误应该消失。

如果您想要空格,请创建代码"{3}, {0}- {1}, Creation date {2}"。即在开场{之前添加空格,而不是之后。在第一个左大括号之后,格式项无需空格即可正确解释为格式化项目。