我有一個目錄名「C:\ Folder \ 160_Name_2013111914447.7z」我需要的是從C#中的文件名中提取「160」並使用它將它傳遞給MS-SQL方法,所以我可以將文件移動到正確的文件即「160」。C#獲得第一個文件名的字符
請幫忙,因爲我對C#有點新鮮。
我有一個目錄名「C:\ Folder \ 160_Name_2013111914447.7z」我需要的是從C#中的文件名中提取「160」並使用它將它傳遞給MS-SQL方法,所以我可以將文件移動到正確的文件即「160」。C#獲得第一個文件名的字符
請幫忙,因爲我對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
類的Substring
方法:
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);
}
謝謝,這將在這種情況下工作,因爲第一個字符的數量不會總是3. Thanx –
要得到數字,假定您輸入的文件路徑始終位於起始位置,並且您可以使用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 –