首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TAGLIB - mscorlib.dll中发生'System.StackOverflowException‘类型的未经处理的异常

TAGLIB - mscorlib.dll中发生'System.StackOverflowException‘类型的未经处理的异常
EN

Stack Overflow用户
提问于 2015-02-11 02:23:35
回答 1查看 527关注 0票数 0

我有一个小型的控制台应用程序,它可以浏览一组文件夹,并尝试设置ID3Tag属性。

ScrPathn相册和艺术家是字符串常量。

代码语言:javascript
复制
static void Main(string[] args)
{
            List<string> dirs = new List<string>(Directory.EnumerateDirectories(SrcPath));

            foreach (var dir in dirs)
            {
                string ParentDirOfFile = dir.Substring(dir.LastIndexOf("\\") + 1);
                List<string> files = new List<string>(Directory.EnumerateFiles(dir));
                foreach (var file in files)
                {
                    string filename = Path.GetFileName(file); 
                    string destfile = Path.Combine(SrcPath, ParentDirOfFile + "_" + filename);
                    var fs = new FileStream(destfile, FileMode.Open);
                    using (var tagFile = TL.File.Create(new TL.StreamFileAbstraction(destfile, fs, fs)))
                    {
                        tagFile.Tag.Album = Album;
                        tagFile.Tag.Title = Path.GetFileNameWithoutExtension(destfile);
                        tagFile.Tag.AlbumArtists = new string[] { Artist };
                        tagFile.Save();
                    }
                }
            }
            Console.ReadLine();
        }

在保存步骤中,我得到:

System.StackOverflowException是未处理的消息: mscorlib.dll中出现类型为'System.StackOverflowException‘的未经处理的异常

我使用的是通过NuGet安装的TagLig的最新版本。有什么建议吗?

编辑。VS没有给出额外的信息。

更改代码以拆分读写流。

代码语言:javascript
复制
var readfs = new FileStream(destfile, FileMode.Open);
var writefs = new FileStream(Path.Combine(SrcPath, "_" + ParentDirOfFile + "_" + filename), FileMode.Create);
using (var tagFile = TL.File.Create(new TL.StreamFileAbstraction(destfile, readfs, writefs)))

同样的错误,会创建一个空的新文件。

EN

回答 1

Stack Overflow用户

发布于 2015-02-12 05:47:25

我不能说我完全理解你的代码,但我知道这个更简单的版本确实可以工作:

代码语言:javascript
复制
    using (var tagFile = TagLib.File.Create(destfile))
    {
        tagFile.Tag.Album = Album;
        tagFile.Tag.Title = Path.GetFileNameWithoutExtension(destfile);
        tagFile.Tag.AlbumArtists = new string[] { Artist };
        tagFile.Save();
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28438991

复制
相关文章

相似问题

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