【发布时间】:2019-10-10 13:06:37
【问题描述】:
我有以下问题: 我有一个 sql 表(“pathtable”),在其中我将归档的 xml 文件的路径保存在名为“path”的列中。 我现在想从当我使用我在代码中提到的查询时得到的列的路径中的所述文件(“xml1.xml”)中提取文件名(“文件名”)(SELECT path FROM pathtable)。
换句话说,假设在文件夹 xmlfiles (xmlfiles) 中有一个名为“xml1.xml”的文件。并且该文件夹的路径(C:\ Users \ xmlfiles)保存在我的sql表中的“路径”列中。
在一个完美的世界中,我的代码的结果将只是文件名:“xml1”(没有文件扩展名)
感谢您的帮助,问候布赖恩
SqlConnection connection = new SqlConnection(@"Data Source=...\SQLEXPRESS;Initial Catalog=...;Integrated Security=SSPI");
{
string pathname= "SELECT path FROM pathtable";
SqlCommand cmd = new SqlCommand(pathname, connection);
connection.Open();
SqlDataReader reader = cmd.ExecuteReader();
string strPath = pathname; //"C:\Users\xmlfiles\";
string filename = null;
filename = Path.GetFileName(strPath);
while (reader.Read())
{
Console.Write(filename);
}
Console.ReadKey();
reader.Close();
connection.Close();
}
因为似乎对我想要实现的目标有很多困惑(我的坏:)),所以我尝试以更好的方式解释它: 这是我的 sql 表:SQL Table
在此路径中:“C:\Users\xmlfiles\”有一个名为“testxml.xml”的文件,我希望我的代码返回“testxml”。 还有一个要求是它是硬编码,换句话说,我只能更改我想在我的 sql 表中使用的路径,而不是在 C# 代码中。所以假设我将我的 sql 表从“C:\Users\xmlfiles\”更新为“C:\Users\docfiles\”,那么它应该给我文件夹 docfiles 中的文件名。
我才刚刚开始,感谢您的耐心等待
【问题讨论】:
-
您的代码看起来有点混乱。您可以获取查询返回的路径inside
while循环如string path = reader.GetString(0);和不带扩展名的文件名如string file = Path.GetFileNameWithoutExtension(path); -
我认为您的代码存在混淆,您的意思是您从 db 获取的路径是“C:\Users\xmlfiles\xml1.xml”吗?
标签: c# sql sql-server filenames