0

我想使用 C# 4.5 打开一个 css 文件,一次只更改一个文件。

这样做会给我一个例外 -不支持 URI 格式

  1. 最有效的方法是什么?
  2. 我可以在不阅读整个文件的情况下找到该行并替换它吗?
  3. 我正在寻找的行是否可以开始插入文本,直到光标指向某个字符?

    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

我相信File.ReadAllText期待一个文件路径,而不是一个 URL。

不,您不能在不读取和重写整个文件的情况下搜索/替换文本文件的部分。它只是一个文本文件,而不是数据库。

于 2013-03-03T17:08:20.033 回答
0

最有效的方法是将要更改 css 的任何控件声明为“runat=server”,然后修改CssClass它的属性。没有已知的替代方法可以直接修改 css 文件。任何其他黑客都只是......一种黑客和非常低效的方式来做到这一点。

于 2013-03-03T17:11:13.680 回答