Перечисление самого длинного пути к файлу с C # - PullRequest
0 голосов
/ 05 января 2012

Я использую Windows XP. Мне нужно найти файл (в папке D: \ Test) с самым длинным путем (длина пути + длина имени файла). Как мы можем узнать это, используя C #?

Существует ли какая-либо команда, например dir, tree ect, для проверки этого? Любая идея, как это сделать с помощью T-SQL?

Примечание: xp_cmdshell можно использовать из T-SQL для получения структуры каталогов

Спасибо

Lijo

Ответы [ 4 ]

8 голосов
/ 05 января 2012

Используя 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.Однако я не знаю, почему так хочется.

0 голосов
/ 05 января 2012

Используйте класс DirectoryInfo из пространства имен System.IO, чтобы все файлы перебирали эти имена файлов и проверяли, больше ли длина, чем то, что было найдено ранее.

0 голосов
/ 05 января 2012

Что-то вроде этого сделает это:

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;
}

Он вернет только первое самое длинное имя файла, но вы поняли идею.

0 голосов
/ 05 января 2012

SQL не имеет к этому никакого отношения.начните с чтения о DirectoryInfo классе здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...