0

C# 4.5 を使用して css ファイルを開き、一度に 1 つのファイルのみを変更したいと考えています。

このようにすると例外が発生します - URI 形式はサポートされていません

  1. それを行うための最も効果的な方法は何ですか?
  2. ファイル全体を読み取らずに、行を見つけて置き換えることはできますか?
  3. 私が探している行は、カーソルが char を指すまでテキストを挿入し始めることができますか?

    public void ChangeColor()
    {
        string text = File.ReadAllText("http://localhost:8080/game/Css/style.css");
    
        text = text.Replace("class='replace'", "new value");
    
        File.WriteAllText("D://p.htm", text);
    }
    
4

3 に答える 3

0

前に述べたように、File.ReadAllText は URL をサポートしていません。以下は、WebRequest を使用した実際の例です。

{
    Uri uri = new Uri("http://localhost:8080/game/Css/style.css");

    WebRequest req = WebRequest.Create(uri);
    WebResponse web = req.GetResponse();
    Stream stream = web.GetResponseStream();

    string content = string.Empty;

    using (StreamReader sr = new StreamReader(stream))
    {
        content = sr.ReadToEnd();
    }

    content.Replace("class='replace'", "new value");

    using (StreamWriter sw = new StreamWriter("D://p.htm"))
    {
        sw.Write(content);
        sw.Flush();
    }
}
于 2013-03-03T17:14:04.577 に答える
0

URLではなくファイルパスFile.ReadAllTextを期待していると思います。

いいえ、ファイル全体を読み書きし直さなければ、テキスト ファイルのセクションを検索/置換することはできません。データベースではなく、単なるテキストファイルです。

于 2013-03-03T17:08:20.033 に答える
0

これを行う最も効果的な方法は、css を変更するコントロールを「runat=server」として宣言し、そのCssClassプロパティを変更することです。css ファイルを直接変更する既知の代替方法はありません。他のハックはまさに​​それです..ハックであり、それを行うには非常に非効率的な方法です。

于 2013-03-03T17:11:13.680 に答える