首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在c#中编辑文本文件时,该文件恰好是插图工具(.ai)文件

在c#中编辑文本文件时,该文件恰好是插图工具(.ai)文件
EN

Stack Overflow用户
提问于 2020-10-07 23:51:23
回答 1查看 157关注 0票数 0

我们有数百个使用需要更改的字体的Illustrator文件。我可以在Notepad++中打开Illustrator文件,搜索有问题的字体并将其替换为新字体。然后,使用正确的字体在Illustrator中打开该文件而不会出现问题。

我正在尝试编写一些C#代码来自动完成此操作,但Illustrator声称生成的文件已损坏。

我认为这是由于文件的编码造成的,所以我尝试了用各种不同的编码来读写文件,结果基本上是一样的。文件要么根本打不开,要么是空白白页。无论哪种方式,Illustrator都表示文件已损坏。

经过几次修改后,下面是我现在的代码:

代码语言:javascript
复制
public void RenameFont()
{
    DirectoryInfo directory = new DirectoryInfo(Common.SOURCE_FOLDER);
    FileInfo[] files = directory.GetFiles("*.ai", SearchOption.TopDirectoryOnly);
    foreach (FileInfo file in files)
    {
        string fileName = file.Name.Replace(".ai", "");
        if (int.TryParse(fileName, out int itemNumber))
        {
            using (FileStream fs = file.OpenRead())
            using (StreamReader reader = new StreamReader(fs, Encoding.GetEncoding(1252)))
            {
                string line;
                        
                using (StreamWriter writer = new StreamWriter(File.Open(Path.Combine(file.DirectoryName, $"new{file.Name}"), FileMode.Create), Encoding.GetEncoding(1252)))
                {
                    while ((line = reader.ReadLine()) != null)
                    {
                        foreach (string badFont in Common.SEARCH_FOR)
                        {   
                            if (line.Contains(badFont))
                            {
                                line = line.Replace(badFont, Common.REPLACE_WITH);
                            }
                        }
                        writer.WriteLine(line);
                    }
                    writer.Flush();
                    writer.Close();
                }
                reader.Close();
            }
        }
    }
}

即使我只读写文件而不修改字体名称,结果仍然是一样的。

编辑:我最后使用了Notepad++的“在文件中查找”功能来替换文本。它在不到一分钟的时间内处理了所有的文件,它们都在Illustrator中打开,没有问题。

EN

回答 1

Stack Overflow用户

发布于 2020-10-08 02:23:24

一个grep工具可以更可靠、更容易地完成这项任务。不要重复发明轮子- ADyson

虽然grep工具是一个很好的想法(我仍然不知道为什么我没有想到它)。我意识到Notepad++有一个在文件中查找的功能,可以为我做文本替换。

我让它遍历了文件夹中的所有文件,并在需要的地方进行了查找/替换。只用了不到一分钟,一切都运行得很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64247760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档