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
} 问题是我添加了以下行: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仅出现在控制台窗口中每种格式附近 非常感谢。添加到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在以下格式的当前目录中找不到文件:
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" }