Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C获取文件名的第一个字符_C#_String_Directory - Fatal编程技术网

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

C# C获取文件名的第一个字符,c#,string,directory,C#,String,Directory,我有一个目录名C:\Folder\160\u name\u 201311914447.7z我需要的是从C中的文件名中提取160,并使用它将其传递给MS-SQL方法,以便将文件移动到正确的文件,即160 请帮帮我,因为我对C有点陌生。试试这样的方法: Path.GetFileName(@"C:\Folder\160_Name_2013111914447.7z").Split('_')[0]; 或者可能 string fileName = Path.GetFileName(@"C:\Folder\

我有一个目录名C:\Folder\160\u name\u 201311914447.7z我需要的是从C中的文件名中提取160,并使用它将其传递给MS-SQL方法,以便将文件移动到正确的文件,即160


请帮帮我,因为我对C有点陌生。

试试这样的方法:

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个符号,可以使用string类的方法:

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

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("_");
如果未找到匹配项,则这些方法返回-1,因此我们需要检查它

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

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

       FileInfo fileInfo = new FileInfo(path);

        string name = fileInfo .Name;

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

其中path是使用的文件的完整路径

是否要获取文件名中的前3个字符?还是从一开始到第一个字符?这就是你的模式?@SonerGönül文件名通常不会有3个字符。它可能是第一个4或6谢谢您,在这种情况下,这将起作用,因为第一个字符的数量并不总是3。塔克斯
       FileInfo fileInfo = new FileInfo(path);

        string name = fileInfo .Name;

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