singlepost

Как в dotNET узнать являится ли объект папкой или файлом (по пути в string)? << На главную или назад  

Пишу прогу на C#, появилась данная проблема
нашел класс System.Uri, взял оттуда свойство isFile - видимо сделал глупость - он почему-то и на папку возвращает TRUE...
что делать?

42 ответов в теме “Как в dotNET узнать являится ли объект папкой или файлом (по пути в string)?”

Страницы: [1] 2 3 4 5 »

  1. 1
    Алексей Самулеенков ответил:

    Если речь идёт о файлах в локальной файловой системе, то вот ссылка по теме: http://msdn.microsoft.com/en-us/library/system.io.pa...

  2. 2
    Да Да ответил:

    именно так, спасибо!

  3. 3
    Да Да ответил:

    черт, я что-то совсем оглупел – а что там за метод это делает?

  4. 4
    Глеб Загребалов ответил:

    Ни это ли?
    -> http://msdn.microsoft.com/en-us/library/system.io.pa...

    Ежели папка то возврат нуллика, а файл – имени и расширения.

  5. 5
    Да Да ответил:

    public void Bust(string Dir)
    {
    string[] arr;

    Dictionary<long, string> hashTable = new Dictionary<long, string>();
    long curHash = 0;
    labCountAll.Text = Convert.ToString(listBox1.Items.Count);
    try
    {
    arr = Directory.GetFileSystemEntries(Dir);
    foreach (string str in arr)
    {
    >>>>>>>>>>>>>>

    if (Path.GetFileName(str) != "")
    >>>>>>>>>>>>>>
    {// Если текущий объект – файл
    curHash = getHash(str);
    if (hashTable.ContainsKey(curHash))
    {// Если текущий файл обладает хэш-кодом, имеющимся в таблице
    listBox1.Items.Add(str);
    labCountAll.Text = Convert.ToString(listBox1.Items.Count);
    listBox2.Items.Add(str);

    }
    else
    {
    hashTable.Add(curHash,str);
    listBox1.Items.Add(str);
    }
    }
    else
    {
    Bust(str);
    }

    }
    }
    catch (Exception exc)
    {
    MessageBox.Show(exc.Message);
    return;
    }

    }

    При попытке выполнить Path.GetFileName("C:\\1test\\Новая папка")
    всё равно выполняется 1 ветка… =(
    есть предположение, что в конце пути надо как-то добавить "\\", но это рекурсивно приводит к вопросу данного поста…

  6. 6
    Сергей Рыбьяков ответил:

    А не проще ли смотреть СВОЙСТВА обекта?

    FileInfo FI = new FileInfo(твой обект);//для просмотра атрибутов
    string atribyts = FI.Attributes.ToString();//наши атрибуты
    int f = atribyts.IndexOf("Directory");//если файл, то f == -1, иначе f >=0
    // f будет иметь индекс первого вхождения слова Directory в строке atribyts

  7. 7
    Да Да ответил:

    спс, попробую!

  8. 8
    Да Да ответил:

    я вот думаю – как создание нового объекта за каждый проход отразиться на быстродействии…
    думаю надо на С++ реализовать=)

  9. 9
    Сергей Рыбьяков ответил:

    Что за чудо программа то такая?

  10. 10
    Да Да ответил:

    Поиск дубликатов файлов по содержанию.
    Считается хэш-код файла.
    Программа содержит ассоциацивный массив в виде "Хэш-Путь в системе".
    если софтина находит хэш код, сходный с имеющимся в таблице – путь к файлу выводиться в listbox для "файлов, к удалению"

Страницы: [1] 2 3 4 5 »

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.