[英]Process files in dynamically created directories
我對以下問題進行了廣泛搜索,但沒有成功。
用C#逐行處理大型文本文件並創建文本消息並將其發送到JMS隊列所花費的時間超出了允許的時間。 我將大文件分解為較小的文件,並運行文本消息轉換程序的多個實例。
較大的文本文件的大小不同,因此創建的較小文件的數目將不會總是相同。 我正在動態創建一個目錄來容納每個較小的文本文件,以便文本消息轉換程序的每個實例將有一個單獨的目錄可用於工作。
我可以執行上述處理,但是如何獲得文本消息轉換程序的實例來運行和處理動態創建的目錄中包含的每個小文件,每個目錄一個實例。 我計划從該程序中調用文本消息轉換程序,該程序會創建較小的文件並將其放置在動態創建的目錄中。
謝謝
格雷格
循環遍歷根目錄,並為該文件夾中的每個目錄啟動一個進程,如下所示:
foreach (var dir in Directory.GetDirectories("z:\temp"))
{
ProcessStartInfo psi = new ProcessStartInfo();
psi.Arguments = String.Format("-dir=\"{0}\"", dir);
psi.FileName = @"C:\Path\To\Your\Converter.exe";
Process.Start(psi);
}
我建議使用threads
而不是單獨的實例。 線程比process
輕,並且由於完成的工作彼此獨立,因此您可以使用.net 4
並行
using System.Threading;
using System.Threading.Tasks;
string strParentDir = @"C:\ProgramData\Text2Msg\";
string[] strDirectories = Directory.GetDirectories(strParentDir));
Parallel.ForEach (string strDir in strDirectories)
{
Txt2MsgConverter(strDir);
}
public void Txt2MsgConverter(string strDirName)
{
//your text to message code
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.