使用system.io读取文件?

时间:2012-10-21 16:38:50

标签: c# file command-line directory .net

可以对这个问题提供一些帮助。我正在使用system.io,我必须做一些需要移动,分组,重命名文件的东西。

到目前为止,使用c#在命令行应用程序中工作,我已经将一些文件从一个目录移动到另一个目录,我现在需要对一些像这样的pdf文件进行分组 - B-12345 1.pdf,B-12345 2.pdf,B- 12345 3.pdf,B-12345 4.pdf。我被告知我不需要将它们组合在一起,只是为了确保我每个项目参考(b-1234)只创建一个工作。

为了给你一些关于在这些文件分组后我正在做什么的背景信息我需要在作业表sql数据库中创建一个记录。但这是另一天的另一个问题,只是认为id给你一些更多信息。< / p>

主要是我只需要了解如何读取文件目录中的文件和分组文件的信息,这对我来说非常有用。

为了使问题更清楚,这是任务中的顺序应该在命令行应用程序中完成。

  1. 读取目录中的文件(我已经移动它们了吗?)
  2. 按项目分组(不确定)
  3. 在sql db中创建作业记录
  4. 将文件移动并重命名为正确的位置
  5. 提前致谢

    我的代码在

    下面
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.IO;
    
    public class MoveForProcessing
    {
        static void Main()
        {
            // move cad jobs to processing directory and delete former folder, use the System.IO.Path class.
            System.IO.Directory.Move(@"C:\Users\Ben\My Documents\Temp\", @"C:\Users\Ben\My Documents\Processing\");
        }
    }
    

1 个答案:

答案 0 :(得分:2)

您可以先声明有问题的目录的DirectoryInfo类

private System.IO.DirectoryInfo dir = System.IO.DirectoryInfo.Open(@"path");

然后为目录

中的每个文件获取一个FileInfo对象数组
private FileInfo[] files = dir.GetFiles();

如果您只想要某些文件类型

,也可以将通配符字符串放入GetFiles()
private FileInfo[] files = dir.GetFiles("*.pdf");

然后,您可以通过数组递增每个FileInfo对象所需的任何内容

foreach(FileInfo f in files)
{
   f.Move(); // or whatever you need to do
}