2016-05-12 26 views
0

xmlファイルをスキャンするループがあり、成功すると文字列をループして操作します。問題は私が使用中の警告ファイルを持っているので私は投稿を書くことができません。どのように私はこれを修正するのですか?ファイルCに書き込めません#

ループ:ファイルを書き込むための

var dir = new DirectoryInfo(@"C:\Projektdata"); 
foreach (var file in dir.EnumerateFiles("*.xml", SearchOption.AllDirectories)) 
{    
    foreach (string line in File.ReadLines(file.DirectoryName + @"\" + file)) 
    { 
     . . . . 

章:

string directoryPath = file.DirectoryName + @"\" + file; 

StreamWriter writer = new StreamWriter(directoryPath); 

writer.WriteLine(source);            

writer.Close(); 

答えて

0

usingディレクティブでそれを使用します。

using(var writer = new StreamWriter(directoryPath)) 
{ 
    writer.WriteLine(source);            
} 

エラーが引き続き発生する場合、stringを保存しよう変数に変換し、この書き込み処理をの範囲外で使用します繰り返し。 (foreachの反復処理ではファイルが1行ずつ読み込まれるため、ファイルが開いていることを意味します)。

0

開いているファイルに書き込むことはできません。すでに同じファイルを開いて読んでいます。

File.ReadLines(file.DirectoryName + @"\" + file); 

string directoryPath = file.DirectoryName + @"\" + file; 
StreamWriter writer = new StreamWriter(directoryPath); 

File.ReadLines()IEnumerable<string>を返すされ、各ラインが得られます。したがって、ループ内でファイルはまだ開いています。書き込みがループ内にあると仮定します。

関連する問題