public void renameSubfile(string folderPath) { List<string> subFiles = new List<string>(); MatchSubs m = new MatchSubs(); var subFilesOnDisk = Directory.GetFiles(folderPath, "*.srt"); foreach (var file in subFilesOnDisk) { subFiles.Add(Path.GetFileName(file)); } string[] videoExt = _videoExt.ToString().Split(new char[] { ';' }); foreach (string ext in videoExt) { var matchingFiles = Directory.GetFiles(folderPath, "*" + ext); foreach (var file in matchingFiles) { string filename = Path.GetFileName(file); string targetSubFileName = filename.Replace(ext, ".srt"); if (subFiles.Contains(targetSubFileName)) { //m.Log("INFO " + DateTime.Now.ToString() + " - Subtitle: " + filename + " subfile already exists"); } else { string subFile = m.getSubFilePath(filename, subFiles); if (subFile != null) { m.Log("INFO " + DateTime.Now.ToString() + " - Subtitle Video: " + filename + " subfile matched: " + subFile); File.Move(Path.Combine(folderPath, subFile), Path.Combine(folderPath, targetSubFileName)); subFile = null; } } } } }
static void Main(string[] args) { // string category = "K-Drama"; //args[4]; string folderPath = args[0]; //Get showPath from first CMD Line Argument string postprocessStatus = args[6]; MatchSubs m = new MatchSubs(); if (postprocessStatus != "0") { Console.WriteLine("Unpacking failed: Post Processing aborted"); return; } string[] videoExt = _videoExt.ToString().Split(new char[] {';'}); string showName = null; string[] titleSplitX = null; string patternX = @"^(.+)\.E([0-9]+).*$"; int filesProcessed = 0; foreach (string ext in videoExt) { var matchingFiles = Directory.GetFiles(folderPath, "*" + ext); foreach (var file in matchingFiles) { string filename = Path.GetFileName(file); string sourceFilePath = Path.GetFullPath(file); Match titleMatchX = Regex.Match(filename, patternX); if (titleMatchX.Success) { titleSplitX = Regex.Split(filename, patternX); showName = titleSplitX[1].TrimEnd('.', ' ', '-', '_'); showName = showName.Replace('.', ' ').Trim(); string targetFolder = Path.Combine(_kdramaFolder, showName); if (!Directory.Exists(targetFolder)) { Directory.CreateDirectory(targetFolder); } if (File.Exists(Path.Combine(targetFolder,filename))) { m.Log("ERROR " + DateTime.Now.ToString() + " - Target file exists " + filename + " in " + targetFolder); } else { File.Move(sourceFilePath, Path.Combine(targetFolder,filename)); m.Log("INFO " + DateTime.Now.ToString() + " - Moved " + filename + " to " + targetFolder); if (ext != ".srt") { m.renameSubfile(targetFolder); Tweet("Drama: " + filename); } } } else { m.Log("ERROR " + DateTime.Now.ToString() + " - Unable to parse filename: " + filename); } filesProcessed += 1; } } if (filesProcessed == 0) { m.Log("ERROR " + DateTime.Now.ToString() + " - No Files Processed: " + folderPath); } }