効率的な文字列メソッドを使用するこのメソッドを使用できます。
public static List<string> GetParts(string text, string token, StringComparison comparison, bool inclToken)
{
List<string> items = new List<string>();
int index = text.IndexOf(token, comparison);
while (index > -1)
{
index += token.Length;
int endIndex = text.IndexOf(token, index, comparison);
if (endIndex == -1)
{
string item = String.Format("{0}{1}", inclToken ? token : "", text.Substring(index));
items.Add(item);
break;
}
else
{
string item = String.Format("{0}{1}{0}", inclToken ? token : "", text.Substring(index, endIndex - index));
items.Add(item);
}
index = text.IndexOf(token, endIndex, comparison);
}
return items;
}
次に、次のように使用します。
var fileText = File.ReadAllText(oldPath);
var items = GetParts(fileText, "Dipendent", StringComparison.OrdinalIgnoreCase, true);
これですべてのパーツが揃ったので、パーツごとに新しいファイルを生成できます。
for (int i = 0; i < items.Count; i++)
{
var fileName = string.Format("Dipendent_{0}.txt", i + 1);
var fullPath = Path.Combine(destinationDirectory, fileName);
File.WriteAllText(fullPath, items[i]);
}