0

我正在使用 Window 7 的 SORT 命令对 .csv 文件进行排序,当我将结果输出到单独的 csv 文件时,该命令可以正常工作,但我需要进行就地排序。

代码如下。

System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo= new System.Diagnostics.ProcessStartInfo();
        startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        startInfo.FileName = "cmd.exe";
        startInfo.Arguments = "/C sort C:\\Users\\fFayyaz\\Desktop\\12.csv > C:\\Users\\fFayyaz\\Desktop\\12.csv";

        process.StartInfo = startInfo;
        process.Start();

上面的代码清空了整个源文件。如果我执行 /C 排序文件名,它不会对文件进行排序。但是,如果源和目标不同,上面的代码可以完美运行。有人可以帮助进行就地排序。

4

2 回答 2

0

你不能就地排序。您可以通过重命名文件以在临时文件中排序来模拟效果,然后启动命令将重命名的文件转换为旧文件名。添加圆顶事务性以检查是否有错误,将旧文件以原始名称复制回来。

注意:我们不能进行就地排序并且源文件是空的,因为该命令在写入之前清除了输出文件,并且由于输出和输入文件相同,它会丢失数据

于 2012-07-31T16:22:25.767 回答
0

从中得出的结论是,Windows 的排序是不可能的。但它是,考虑到它设计使用临时文件。所以为了澄清: 排序/? 显示 /O 选项以指定输出文件 - 只需使用与输入相同的内容,即可获得就地排序。

于 2013-02-27T20:05:15.730 回答