我正在编写一个Windows服务,它对特定文件夹进行轮询。该目录包含各种文件,每个文件派生自以前的拆分操作:
输入文件夹:
服务应该只能合并完整的文件:
输出文件夹(合并操作后):
输入文件夹(合并操作后)
不幸的是,我不得不使用框架2.0。语言是C#。我知道这不是一个复杂的算法,但不知何故,我无法使自己走上正确的方向。合并操作并不重要,因此可以如下所示:
Merge(string[] filesPart)或Merge(List<string> filesPart).
提前谢谢你。
发布于 2011-12-03 11:22:46
首先,使用Directory.GetFiles()获取所有文件
然后您的主要工具将是Dictionary<>类。
我想我会用这样的方法:
class BaseFile
{
public int Total { ... }
public List<string> Parts { ... }
}
List<string, BaseFile> baseFiles = ...;这将允许您扫描文件列表,解析名称并存储它。
扫描后,仅在Total == Parts.Count时处理文件。
只要n在PART_n_OF_m中保持< 10,您就可以简单地对List<string> Parts进行排序。
当它成为>= 10时,您将需要类似于SortedList<int, string> Parts的东西
发布于 2011-12-03 11:08:26
要开始:给定输入文件的列表,根据预期的输出文件对它们进行分组。然后,为每一组计算出您期望的文件数量。然后,为每一组,检查看看你是否有所有的部分。如果您拥有所有的部分,那么将该组中的文件连在一起。
https://stackoverflow.com/questions/8367192
复制相似问题