C#获取文件名的第一个字符

时间:2013-11-27 09:20:27

标签: c# string directory

我有一个目录名“C:\ Folder \ 160_Name_2013111914447.7z”我需要的是从C#中的文件名中提取“160”并使用它将它传递给MS-SQL方法所以我可以移动文件到正确的文件即“160”。

请帮忙,因为我对C#不熟悉。

3 个答案:

答案 0 :(得分: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;

答案 1 :(得分:3)

如果您需要使用前3个符号,则可以使用string类的Substring方法:

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

如果你可以有可变长度的关键字符而下划线字符是分隔符,那么我们必须稍微修改上面的代码。首先,我们需要下划线的索引:

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);
}

答案 2 :(得分:1)

要获取数字,假设您输入的文件路径始终位于开头,并且您可以使用3个字符的长度。

       FileInfo fileInfo = new FileInfo(path);

        string name = fileInfo .Name;

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

其中path是您使用

的文件的完整路径