-1

注意:我已将标签编辑为 C# 和 .NET。

在此处输入图像描述

您可以在我的上图中看到,我的 2009 文件夹中有 .pdf 文件,现在我的任务是获取之前的字符串_是我的 id,字符串是文件名,之后.是扩展名。

这些都是我的Windows资源管理器中2009文件夹下的文件名。

在 sql 中,我想创建一个包含三列的表,其中包含第一个文件名。

1-AXJUHC_65927302.pdf

在sql中我需要

id             filename                   fileextension

1-AXJUHC       1-AXJUHC_65927302.pdf         pdf

所有文件名的这种方式。

如果有人只是建议我如何使用 bash 或任何其他工具在 Windows 级别提取上述字段,然后将此 id、filname、fileextension 写入文本文件,那么我可以将其插入 sql。

4

3 回答 3

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`}
于 2012-05-23T09:11:01.900 回答
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 );
}

您可以按照 MrGTgo 的建议使用 FileInfo 类,但这会读取比您需要的更多的数据。

于 2012-05-23T10:00:35.603 回答
0

你可以这样做:

根据需要获取Path文件 [Let it be 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"
于 2012-05-23T09:29:34.783 回答