2013-11-27 3 views
0

У меня есть имя каталога «C: \ Folder \ 160_Name_2013111914447.7z», что мне нужно, чтобы извлечь «160» из имени файла на C# и использовать его, чтобы передать его MS-SQL, поэтому я могу переместить файл в правильный файл. А именно «160».C# получение первых символов имени файла

Пожалуйста, помогите, так как я новичок в C#.

+0

Хотите, чтобы получить первую '3' символ в своем имени файла? Или от начала до первого символа '_'? Это ваш образец? –

+0

@ SonerGönül Имя файла обычно не должно содержать 3 символа. Это может быть первый 4 или 6 –

ответ

7

попробовать что-то вроде этого:

Path.GetFileName(@"C:\Folder\160_Name_2013111914447.7z").Split('_')[0]; 

Или, возможно,

string fileName = Path.GetFileName(@"C:\Folder\160_Name_2013111914447.7z"); 
Regex.Match(fileName, "^([0-9]+)_").Groups[1].Value; 
3

Если вам нужно сделать первые 3 символа, вы можете использовать Substring метод string класса:

string fileName = Path.GetFileName(@"C:\Folder\160_Name_2013111914447.7z"); 
// take 3 symbols starting from 0th character. 
string extracted = fileName.Substring(0, 3); 

Если вы можете иметь переменную длину ключевых символов и подчеркивание e - разделитель, тогда нам придется немного модифицировать приведенный выше код. Во-первых, мы должны индекс подчеркиванием:

string fileName = Path.GetFileName(@"C:\Folder\160_Name_2013111914447.7z"); 

// get the zero-based index of the first occurrence of an underscore: 
int underscoreIndex = fileName.IndexOf("_"); 

В string.IndexOf(...) методы возвращает -1, если совпадение не найдено, поэтому нам нужно было проверить.

if (underscoreIndex >= 0) 
{ 
    string extracted = fileName.Substring(0, underscoreIndex); 
} 
else 
{ 
    // no underscore found 
    throw new InvalidOperationException(
     "Cannot extract data from file name: " + fileName); 
} 
+1

Спасибо, что это будет работать в этом случае, потому что число первых символов не всегда будет 3. Thanx –

1

Чтобы получить число, предполагающее путь к файлу, который вы вводите, всегда будет в начале и длиной 3 символа, которые вы можете использовать.

 FileInfo fileInfo = new FileInfo(path); 

     string name = fileInfo .Name; 

     int startingNumber = Convert.ToInt32(name.Substring(0,3)); 

где путь полный путь к файлу, используя ваш

Смежные вопросы