我正在使用Windows XP。我需要找到具有最长路径(路径长度+文件名长度)的文件(在文件夹D:\ Test中)。我们如何使用C#找到这个?
是否有像dir,tree等命令来验证这个? 知道如何使用T-SQL做到这一点吗?
注意:可以使用xp_cmdshell从T-SQL获取目录结构
由于
Lijo
答案 0 :(得分:8)
使用c#,您可以使用以下代码段检索名称最长的文件:
System.IO.Directory
.GetFiles("D:\\Test", "*", SearchOption.AllDirectories)
.OrderByDescending(p => p.Length)
.FirstOrDefault()
您可以使用此PowerShell脚本验证输出:
Get-ChildItem | % { $_.FullName } | Sort-Object -Descending -Property Length
我不知道如何在T-SQL中执行此操作。但是,我不知道为什么要这样做。
答案 1 :(得分:0)
SQL与此完全无关。首先阅读DirectoryInfo
班here
答案 2 :(得分:0)
使用System.IO命名空间中的DirectoryInfo类获取所有文件 迭代这些文件名并检查长度是否大于先前找到的长度。
答案 3 :(得分:0)
这样的事情会做到:
private static string getLongestFilename(string path)
{
int maxLength = 0;
string longestFile = string.Empty;
DirectoryInfo di = new DirectoryInfo(path);
foreach (FileInfo fi in di.GetFiles())
{
if (fi.FullName.Length > maxLength)
{
longestFile = fi.FullName;
maxLength = fi.FullName.Length;
}
}
return longestFile;
}
它只返回第一个最长的文件名,但你明白了。