0

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

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

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

主要是我只需要有关如何读取文件目录中的文件和分组文件的信息,这对我非常有益。?

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

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

提前致谢

我的代码如下

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\");
    }
}
4

1 回答 1

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
}
于 2012-10-21T18:03:45.783 回答