4
我有一個必須複製到新目錄的文件列表。所有的信息都在文件名中。每個原始文件名由一個[安裝編號] [新文件名]組成。因此,例如:拆分一個字符串,包含前導數字及其後的所有內容
235623bob.txt
這裏安裝數量爲235623和新的文件名會被bob.txt。安裝號碼是1到11位數字,新文件名永遠不會以數字開頭。但它可以從任何其他合法字符開始,並且可以在第一個字符後包含數字。因此,例如:
3245_6786bil54.txt
是3245的安裝數量和_6786bil54.txt爲新的文件名。我曾嘗試執行以下操作:
private void BtnGo_Click(object sender, EventArgs e)
{
string inst_no = ""; // installation number
string dest_filename = ""; // destination filename
string dest_directory = "";
string[] source_files = Directory.GetFiles(TxtSource.Text);
// copy them to their new destination
foreach (string file in source_files)
{
// source filename contains the instno and dest_filename.
Match match = Regex.Match(file, @"(\d+)(\w+)");
inst_no = match.Groups[0].Value;
dest_filename = match.Groups[1].Value;
dest_directory = TxtDestination.Text + "\\" + inst_no;
if (!Directory.Exists(dest_directory))
Directory.CreateDirectory(dest_directory);
File.Copy(file, dest_directory + "\\" + dest_filename);
}
}
這裏的問題是:
inst_no = match.Groups[0].Value;
dest_filename = match.Groups[1].Value;
1253hans.txt應該成爲
inst_no=1253
dest_filename=hans
但它是
inst_no=1253hans
filename=1253
有什麼我誤解了小組賽嗎?
謝謝。就是這樣。它確實按照預期的文件名工作。 – 2012-03-21 10:01:15