2012-05-23 20 views
-1

注意:我已經將標籤編輯爲C#和.NET。單獨的文件名在Windows資源管理器中的字符串?

enter image description here

您可以在我上面的圖片看到我已經.pdf文件在我的2009年文件夾現在我的任務就是_之前得到的字符串,這是我的身份證,並且是文件名和.後的字符串是延伸。

這些都是我的Windows資源管理器在2009文件夾下的文件名。

在sql中我想創建三列,其中將包含這樣的第一個文件名的表。

1-AXJUHC_65927302.pdf 

在SQL我需要

id    filename     fileextension 

1-AXJUHC  1-AXJUHC_65927302.pdf   pdf 

這樣對所有的文件名的方式。

如果有人只是建議我如何在windows級別使用bash或任何其他工具提取上述字段,然後將此ID,FILNAME,文件擴展名寫入文本文件,然後我可以將其插入到SQL中。

+0

http://msdn.microsoft.com/en-us/library/system.io.directory.getfiles.aspx – Jodrell

+0

Bash or Batch?你在問題中寫了bash,但是已經標記了批處理。 –

+0

@Jodrell我沒有在問題中看到C#標籤? –

回答

1
foreach (string filePath in System.IO.Directory.EnumerateFiles (pathOfDirectory)) 
{ 
    string filename = System.IO.Path.GetFileName (filePath); 
    string id = filename.Substring (0 , filename.IndexOf ('_')); 
    string extension = filename.Substring (filename.LastIndexOf ('.') + 1); 
} 

您可以使用FileInfo類由MrGTgo的建議,但讀比你需要更多的數據。

2

使用C#http://msdn.microsoft.com/en-us/library/system.io.fileinfo.aspx中的FileInfo類獲取完整的文件名和擴展名。

FileInfo file = new FileInfo(@"path");<br/> 
string sFileName = file.Name;<br/> 
string sExtension = file.Extension; 

,並獲得第一部分爲你的ID使用成纔像

srting [] sFilename = sFileName.Split('_'); 
string sId = sFilename[0]; 

編輯:

要獲取的所有文件目錄:

Foreach(string path in Directory.GetFiles(@"Some_Path_Here"))<br/> 
{`enter the code mentioned above here`} 
0

你可以做這樣的事情:

獲取文件的Path,只要你想[讓它成爲filepath]:

那麼你可以使用:

using System.IO; 

string filename = Path.GetFileName(filepath); // returns "1-AXJUHC_65927302.pdf" 
string id = Path.GetFileNameWithoutExtension(filename.Replace(".", "~").Replace("_", ".")).Replace("~", "."); // for "1-AXJUHC_65927302.pdf", returns "1-AXJUHC" 
string fileextension = Path.GetExtension(filename).Substring(1);// returns "pdf" 
相關問題