2012-02-09 14 views
-2

私はこのようなファイルへのXMLデータのチャンクを記述しようとしています:XmlWriterがこのコードでエラーをスローするのはなぜですか?

using (XmlWriter writer = XmlWriter.Create("D://project//data//" + i + ".xml")) 

が、それは次のようなエラー与える:私はXmlReaderを使用してXMLを読んでいたときに、しかし

Server Error in '/' Application.

Could not find a part of the path ' D:\project\data\1.xml '.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details:System.IO.DirectoryNotFoundException : Could not find a part of the path ' D:\project\data\1.xml '.

を:

XmlReader reader = XmlReader.Create("d://project//data.xml"); 

シームレスにリーダーを作成し、エラーは発生しません。なぜか分からない。

EDIT:申し訳ありません、両方のフォルダパスは同じであり、正しいものをd://project//data.xml

+1

フォルダーは異なります。おそらくd:// project_elysian /は存在しますが、D:// project // dataは存在しません。 –

+3

あなたの質問で例外がクリアされているようです:ディレクトリが存在しない、 – Schwarzie2478

答えて

3

私はここで間違っている2つのことを見つけました。

XmlReader reader = XmlReader.Create("d://project_elysian//data.xml"); 

using (XmlWriter writer = XmlWriter.Create("D://project//data//" + i + ".xml")) 

トップCreateproject_elysianというディレクトリを使用し、第二は、projectを使用しています。

また、data.xmlというファイルを作成し、もう1つはdataをディレクトリとして使用しています。ファイルを増分する場合は、i変数の前にフォワードスラッシュを削除する必要があります

using (XmlWriter writer = XmlWriter.Create("D:/project/data" + i + ".xml")) 
2

フォワードslashsはエスケープする必要はありません。私は、この代わりに

using (XmlWriter writer = XmlWriter.Create(@"D:\project\data\" + i + ".xml")) 

はまた、あなたは最初にディレクトリを作成する必要があり、この

if(Directory.Exists(@"D:\project\data\")) 
2

のようなものを使用してファイルを作成しようとする前にディレクトリが存在する可能性がチェックしてみてくださいと思います。

1

が存在するのに対し、D:\project\data\は存在しません。

関連する問題