2011-07-16 59 views
0
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();   
    } 
} 

}我在控制台窗口中使用控制台应用程序我看到每行两次为什么?

的问题是,当我已经添加了行:串[]行=全球:: EachFileDirectory.MyResource.video_formats.Split(新字符[] { '\ r', '\ n' });

从那时起,我看到控制台窗口中的所有行加倍,例如:

* 0.264的格式的当前目录中找不到文件: 格式的当前目录中找不到文件: *。 MOV格式的当前目录中找不到文件:在格式的当前目录中找到 号文件:

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

* 0.264当前找不到档案格式目录: * .mov当前目录中没有找到文件格式:

等等但是因为我有这样的一行:string [] lines = global :: EachFileDirectory.MyResource.video_formats.Split(new Char [] {' \ r”, '\ n'});代码末尾的行:Console.WriteLine(line +“在当前格式的目录中找不到文件:”);

我看到格式当前目录中找不到任何文件:也在每行之间。

我该如何解决?

在我添加了一个文本文件至极项目的参考包含这样多种视频格式的一些推广:

* 0.264 * .MOV * .AVI

等等... ..

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

非常感谢。

+0

我很头痛,想弄清楚你试图做什么 – Icemanind

回答

0

添加StringSplitOptions.RemoveEmptyEntriesSplit方法:

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

你对分裂\r\n - 这意味着你要开启的东西输入像

"foo\r\nbar" 

到:

{ "foo", "", "bar" } 

...所以你然后试图找到所有的文件与模式。

有多种选择:

  • 创建StringReader和呼叫ReadLine多次,而不是使用Split
  • 分裂
  • 拆分只是\n之前用空字符串替换\r,然后修剪每个条目
  • 指定StringSplitOptions.RemoveEmptyEntries拆分后
相关问题