-2

指定された場所にファイルが存在するかどうかを確認しています。存在する場合は、単一引用符を ' に置き換えています。このために、WriteAllText メソッドを使用しています。私の知る限り、WriteAllText はCreate file and write the text and close it, target file is already exists, it will be overwritten.

System.IOException使用中になぜ得られるのかわかりません

var file = AppDomain.CurrentDomain.BaseDirectory + "test";
if (Directory.Exists(file))
{
    string text = File.ReadAllText(file + "\\test.txt");
    text = text.Replace("'", "&#39");
    File.WriteAllText(file + "\\test.txt", text);
}

注:この内部Application_BeginRequestメソッドを使用しています。

この例外を回避する方法を教えてください。

4

2 に答える 2

0

以下のようにコードを使用してください

            var file = AppDomain.CurrentDomain.BaseDirectory + "test.txt";
            if (File.Exists(file))
            {
                string text = File.ReadAllText(file);
                text = text.Replace("'", "&#39");
                File.WriteAllText(file, text);
            }

これで問題が解決することを願っています

于 2016-04-13T04:50:22.783 に答える
0

まず、使用中にディレクトリの存在を尋ねています

Directory.Exists(file)

ファイルの存在を確認するには、使用する必要があります

File.Exists(file)

次に、ファイル名を再度連結したファイルをパラメーターとして渡すことにより、ファイルから ReadAllText を試みています。したがって、渡すファイル名は実際には次のとおりです。

AppDomain.CurrentDomain.BaseDirectory + "test.txt" + "\\test.txt";

3 番目に、ReadAllText と同じ WriteAllText のコメントです。

ファイルから読み書きする方法を学ぶための例がネット上にたくさんあります。たとえば、次のようになります。

テキスト ファイルから読み取る - MSDN
テキスト ファイルに書き込む - MSDN

于 2016-04-13T04:57:39.240 に答える