可能是
(kurtnoise) [DGIndexer] updated command line in order to retrieve trackIDs.
造成的bug,错误的意思是数组越界。
------------------------------------
更正,刚才看了一下源代码,megui的那个d2vcreater只支持DVD盘中的vob,或者说只支持文件名为vts*.vob的vob。
src
- public static string DetermineMovieIFO(string inputPath)
- {
- // The first 7 characters are the same for each VOB set, e.g.
- // VTS_24_0.VOB, VTS_24_1.VOB etc.
- string[] vobFiles = Directory.GetFiles(inputPath, "vts*.vob");
- // Look for the largest VOB set
- string vtsNameCurrent;
- string vtsNamePrevious = Path.GetFileName(vobFiles[0]).Substring(0, 7);
- long vtsSizeLargest = 0;
- long vtsSize = 0;
- string vtsNumber = "01";
- foreach (string file in vobFiles)
- {
- vtsNameCurrent = Path.GetFileName(file).Substring(0, 7);
- if (vtsNameCurrent.Equals(vtsNamePrevious))
- vtsSize += new FileInfo(file).Length;
- else
- {
- if (vtsSize > vtsSizeLargest)
- {
- vtsSizeLargest = vtsSize;
- vtsNumber = vtsNamePrevious.Substring(4, 2);
- }
- vtsNamePrevious = vtsNameCurrent;
- vtsSize = new FileInfo(file).Length;
- }
- }
- // Check whether the last one isn't the largest
- if (vtsSize > vtsSizeLargest)
- vtsNumber = vtsNamePrevious.Substring(4, 2);
- string ifoFile = inputPath + Path.DirectorySeparatorChar + "VTS_" + vtsNumber + "_0.IFO";
- // Name of largest VOB set is the name of the IFO, so we can now create the IFO file
- return ifoFile;
- }
string[] vobFiles = Directory.GetFiles(inputPath, "
vts*.vob");
这句代码限定了打开vob的文件名,当打开的vob文件所在目录中没有包含vts*.vob命名方式的vob时,vobFiles数组为空,当代码执行到
string vtsNamePrevious = Path.GetFileName(
vobFiles[0]).Substring(0, 7);
时vobFiles[0]就产生数组越界。