0

これは方法です:

public void CheckFileType(string directoryPath)
{
    var files = Directory.GetFiles(directoryPath).GetEnumerator();
    while (files.MoveNext())
    {
        //get file extension 
        string fileExtension = Path.GetExtension(Convert.ToString(files.Current));

        //get file name without extenstion 
        string fileName =
          Convert.ToString(files.Current).Replace(fileExtension, string.Empty);

        //Check for JPG File Format 
        if (fileExtension == ".jpg" || fileExtension == ".JPG")
        // or // ImageFormat.Jpeg.ToString()
        {
            try
            {
                //OCR Operations ... 
                MODI.Document md = new MODI.Document();
                md.Create(Convert.ToString(files.Current));
                md.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, true, true);
                MODI.Image image = (MODI.Image)md.Images[0];

                //create text file with the same Image file name 
                FileStream createFile =
                  new FileStream(fileName + ".txt", FileMode.CreateNew);
                //save the image text in the text file 
                StreamWriter writeFile = new StreamWriter(createFile);
                writeFile.Write(image.Layout.Text);
                writeFile.Close();
            }
            catch (Exception exc)
            {
                //uncomment the below code to see the expected errors
                w.Write(exc.ToString() + Environment.NewLine);
            }
        }
    }
    w.Close();
}

変数 files.Current にファイル名が含まれている場合に機能します: RadarGifAnimatoion で、ファイルの種類がちょうど: ファイル ファイルのプロパティを実行し、タイプの下に次のように表示されます: ファイル このファイルのサイズは 32 バイトです ファイルが不良または空であると推測します.

次に、次の行で例外が発生します。

string fileName = Convert.ToString(files.Current).Replace(fileExtension, string.Empty);

文字列の長さをゼロにすることはできません

System.ArgumentException は処理されませんでした HResult=-2147024809
Message=String の長さを 0 にすることはできません。パラメーター名: oldValue
Source=mscorlib ParamName=oldValue

4

1 に答える 1

3

(最初のパラメーター) のoldValue をReplace長さ 0 にすることはできません。
ArgumentException の場合はスローされます

Replace に関する Microsoft のドキュメントには、関数によってスローされる可能性のある例外に関する情報が含まれています。

于 2013-09-05T22:12:14.400 に答える