用有效字符替换非法文件名字符

时间:2016-03-15 03:18:47

标签: c# replace character

我正在制作一个视频下载程序,其中一些标题中包含非法字符。我已经尝试用非违法字符替换非法字符,但它没有用。无论我做什么,我都会收到这个错误:“不支持给定路径的格式。”

这是我目前的代码:

var videoDownloader = new VideoDownloader(video, Path.Combine(path, filename + video.VideoExtension));
            string invalid = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars());
            videoDownloader.DownloadProgressChanged += (sender, args) => Console.WriteLine("Video " + args.ProgressPercentage + "% downloaded...");
            string invalidChars = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars());
        foreach (char c in invalidChars)
        {
            filename = filename.Replace(c.ToString(), "."); // or with "."
        }

        videoDownloader.Execute(); // where the error occurs.

        foreach (char c in invalidChars)
        {
            filename = filename.Replace(c.ToString(), "."); // or with "."
        }

我可以通过添加自定义文件名轻松解决此问题,但我更喜欢使用视频中的原始文件名。

另请注意,我正在使用此库:https://www.nuget.org/packages/YoutubeExtractor

1 个答案:

答案 0 :(得分:1)

您正在处理VideoDownloader旧的不固定文件名。您需要在使用字符串之前替换不良字符,而不是在之后。