C# 我在控制台窗口中使用控制台应用程序,我看到每行两次为什么? 使用系统; 使用System.Collections.Generic; 使用系统文本; 使用System.IO; 命名空间控制台应用程序1 { 班级计划 { 静态void Main(字符串[]参数) { int-y; FileInfo-fi; 字符串[]newDest_文件; string[]lines=global::EachFileDirectory.MyResource.video_formats.Split(新字符[]{'\r','\n'}); foreach(行中的字符串行) { newDest_files=Directory.GetFiles(Environment.CurrentDirectory,line);//strFilter); 对于(y=0;y

C# 我在控制台窗口中使用控制台应用程序,我看到每行两次为什么? 使用系统; 使用System.Collections.Generic; 使用系统文本; 使用System.IO; 命名空间控制台应用程序1 { 班级计划 { 静态void Main(字符串[]参数) { int-y; FileInfo-fi; 字符串[]newDest_文件; string[]lines=global::EachFileDirectory.MyResource.video_formats.Split(新字符[]{'\r','\n'}); foreach(行中的字符串行) { newDest_files=Directory.GetFiles(Environment.CurrentDirectory,line);//strFilter); 对于(y=0;y,c#,C#,} 问题是我添加了以下行:string[]lines=global::EachFileDirectory.MyResource.video_formats.Split(新字符[]{'\r','\n}) 从那时起,我在控制台窗口中看到所有行都是双行的,例如: *.264在以下格式的当前目录中找不到文件: 在以下格式的当前目录中找不到文件: *.mov在以下格式的当前目录中找不到文件: 在以下格式的当前目录中找不到文件: 我需要在控制台窗口中看到的是: *.264在以下格式的当前目录中找不到文件:

}

问题是我添加了以下行:string[]lines=global::EachFileDirectory.MyResource.video_formats.Split(新字符[]{'\r','\n})

从那时起,我在控制台窗口中看到所有行都是双行的,例如:

*.264在以下格式的当前目录中找不到文件: 在以下格式的当前目录中找不到文件: *.mov在以下格式的当前目录中找不到文件: 在以下格式的当前目录中找不到文件:

我需要在控制台窗口中看到的是:

*.264在以下格式的当前目录中找不到文件: *.mov在以下格式的当前目录中找不到文件:

依此类推,但因为我有一行:string[]lines=global::EachFileDirectory.MyResource.video_formats.Split(新字符[]{'\r','\n}); 以及代码末尾的行:Console.WriteLine(行+“在当前目录中找不到任何文件,格式:”)

我在当前的format目录中找不到任何文件:也在每行之间

我怎样才能修好它

在项目参考中,我添加了一个文本文件,其中包含许多视频格式扩展,如下所示:

*.264 *莫夫先生 *阿维先生

等等

问题是文本:在当前目录中找不到以下格式的文件: 出现在每种格式附近,也出现在两种格式之间,我希望ti仅出现在控制台窗口中每种格式附近

非常感谢。

添加到
Split
方法:

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int y;
            FileInfo fi;
            string[] newDest_files;
            string[] lines = global::EachFileDirectory.MyResource.video_formats.Split    (new Char[] {'\r','\n'});
            foreach (string line in lines)
            {
                newDest_files = Directory.GetFiles(Environment.CurrentDirectory,         line); //strFilter );
                for (y = 0; y < newDest_files.Length; y++)
                {
                    fi = new FileInfo(newDest_files[y]);
                    string newFolder = Path.Combine(fi.DirectoryName, fi.Name                 + "_Directory");
                    if (!Directory.Exists(newFolder))
                        Directory.CreateDirectory(newFolder);
                    Console.WriteLine("processed: " + line.Length + " files");
                    File.Move(fi.FullName, Path.Combine(newFolder, fi.Name));
                }
                if (newDest_files.Length == 0)
                {
                    Console.WriteLine(line + "No files found in the current directory      of format: ");
             }
        }
        Console.WriteLine("\n Done! Press any key to exit...");
        Console.ReadKey();         
    }
}

您正在对
\r
\n
进行拆分-这意味着您正在转换类似

string[] lines = global::EachFileDirectory.MyResource.video_formats.Split(new Char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
进入:

。。。因此,您将尝试查找所有具有空模式的文件

有多种选择:

  • 创建
    StringReader
    并多次调用
    ReadLine
    ,而不是使用
    Split
  • 在拆分之前,用空字符串替换
    \r
  • 仅拆分
    \n
    ,然后修剪每个条目
  • 指定
    StringSplitOptions。拆分后删除mptyentries

我很头痛,想弄清楚你想做什么
"foo\r\nbar"
{ "foo", "", "bar" }