0

これは私のサンプル ファイル名Text_2.23.txt です。拡張子は既に分離していますが、バージョンを取得できないため、後で比較のためにコードで使用できます。私は出る必要があります2.23

編集: ファイル名にはさまざまな形式がありますが、バージョンは常にファイル名の末尾にあります。

string s = f1.Name.ToString(); //for the Filename
int k = s.LastIndexOf('.');
string lhs = k < 0 ? s : s.Substring(0, k), 
    rhs = k < 0 ? "" : s.Substring(k + 1);

char[] array = lhs.ToCharArray();

Array.Reverse(array);           // reverse search from right to left
for (int j = 0; j < array.Length; j++)
{   
    char letter = array[j];     //the letter I get out in the sample case is "3" 
}
4

3 に答える 3

0

これは私が探していたもので、私の問題を解決する簡単な方法です:

                Array.Reverse(array);  
                Boolean dot = false;
                for (int j = 0; j < array.Length; j++)
                {   
                    char letter = array[j];
                    if (char.IsNumber(letter))
                    {
                        version += letter.ToString();
                    }
                    else if (letter == '.')
                    {
                        if (dot)
                        {
                            break;
                        }
                        dot = true;
                    }
               }
                version = this.Reverse(version);

                if (version.Equals(""))
                {
                    version = "0";
                }
于 2012-12-14T07:09:17.763 に答える