Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
1 / 1 / 1
Регистрация: 11.03.2012
Сообщений: 22
1

SelectDirectory сохранение пути к файлам

07.05.2012, 21:15. Показов 2329. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, форумчани !
Возникла пробелема с функцией SelectDirectory, реализовал я выбор католага с последующим добавлемением всех файлов в нем в ListBox. Вопрос такой, как осущиствить вывод в ListBox полного пути к каждому из этих файлов ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void __fastcall TForm1::SpeedButton4Click(TObject *Sender)
{
  AnsiString Dir;
 
  if  ( SelectDirectory("Выберите папку,"
           " в которой находятся mp3-файлы", "", Dir) )
  {
    Dir = Dir + "\\";
 
    // каталог, в котором находятся MP3 файлы выбран
    SoundPath = Dir;
    PlayList(SoundPath);
  }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2012, 21:15
Ответы с готовыми решениями:

Поиск пути к файлам по фрагменту этого пути
Здравствуйте. У меня есть код, который удаляет все .txt файлы из определенной папки, конкретно из...

Пути к файлам
Привет! Только начал осторожно приоткрывать завесу над FMX, после VCL различий достаточно много и...

Пути к файлам
Здравствуйте! Есть проблема - как в программе задать (автоматический) путь к файлу, который...

Пути к файлам
Пока не изучаю, а даже "присматриваюсь" к С#. Как у новичка в С# возник такой вопрос... При...

7
LK
Заблокирован
07.05.2012, 23:48 2
C++
1
2
3
4
5
6
7
8
if  (SelectDirectory("Выберите папку,"
     " в которой находятся mp3-файлы", "", Dir)) {
  Dir = Dir + "\\";
  ListBox->Items->Add(Dir);
  // каталог, в котором находятся MP3 файлы выбран
  SoundPath = Dir;
  PlayList(SoundPath);
}
0
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
07.05.2012, 23:54 3
Цитата Сообщение от dragonvs Посмотреть сообщение
Вопрос такой, как осущиствить вывод в ListBox полного пути к каждому из этих файлов ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
AnsiString Dir;
 
  if  ( SelectDirectory("Выберите папку,"
           " в которой находятся mp3-файлы", "", Dir) )
  {
    Dir = Dir + "\\";
     TSearchRec sr;
 
        for (int r=FindFirst(Dir+"*.*", faAnyFile, sr);!r;r=FindNext(sr))//поиск файлов в папке Dir
        {
                if (sr.Name!=".")
                if (sr.Name!="..")
                  ListBox->Items->Add(Dir+sr.Name); //Вывод: папка+название файла
        }
    // каталог, в котором находятся MP3 файлы выбран
    SoundPath = Dir;
    PlayList(SoundPath);
  }
1
LK
Заблокирован
08.05.2012, 00:09 4
К какому файлу ? Файла у вас там нет, только каталоги. Может, хорошо бы указать маску искомого файла, и добавлять уже потом? Мысль не посещала?
0
143 / 122 / 14
Регистрация: 10.10.2011
Сообщений: 366
Записей в блоге: 2
08.05.2012, 00:40 5
ну допустим так можно
C++
1
2
AnsiString  CurDir = GetCurrentDir(); //возвращает текущий католог, фактически то место где вы в данную секнду находитесь
ADRESS->Add(CurDir + "\\" + beg.Name);
у меня в примере ток TStringList *ADRESS, beg у меня файл и от него беру его имя и расширение...
я просто файлы в одной проге своей перебираю рекурсией несколько файлов там и использую это... чтоб потом по клику вызывать данные файлы
P.S. идею дал под ListBox сделать вывод думаю тебя не затруднит

Добавлено через 16 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
void __fastcall schet(TObject *Sender)//подсчет mp3 файлов
{
AnsiString  CurDir = GetCurrentDir();
TSearchRec sr;
if(FindFirst("*.*",faAnyFile | faDirectory, sr)==0)
        {
                if(!CompareText(ExtractFileExt(sr.Name),".mp3"))
                {
                        ++nomer;
                        volume=volume+sr.Size;
                }
                else if((sr.Attr==16 || sr.Attr==48) && (sr.Name != ".")&& (sr.Name != ".."))
                        {
                        SetCurrentDir(sr.Name);
                        schet(Sender);
                        SetCurrentDir(CurDir);
                        }
                while (FindNext(sr)==0)
                {
                    if(!CompareText(ExtractFileExt(sr.Name),".mp3"))
                    {
                        ++nomer;
                        volume=volume+sr.Size;
                    }
                    else if((sr.Attr==16 || sr.Attr==48) && (sr.Name != ".")&&(sr.Name != ".."))
                    {
                        SetCurrentDir(sr.Name);
                        schet(Sender);
                        SetCurrentDir(CurDir);
                    }
                }
         }
FindClose(sr);
}
void __fastcall TForm1::Button1Click(TObject *Sender)//выбор дерикторий
{
    AnsiString ODir="C:\\";
    if(SelectDirectory("Enter INPUT Dir",ODir,Dir)==0) goto end_program;
    schet(Sender);      //Считаем число и объем файлов
}
вот тебе на всяк случай моя рекурсия с вызовом
0
1 / 1 / 1
Регистрация: 11.03.2012
Сообщений: 22
10.05.2012, 12:12  [ТС] 6
Использую код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void __fastcall TForm1::SpeedButton4Click(TObject *Sender)
{
  AnsiString Dir;
 
  if  ( SelectDirectory("Выберите папку,"
           " в которой находятся mp3-файлы", "", Dir) )
  {
    Dir = Dir + "\\";
    TSearchRec sr;
 
        for (int r=FindFirst(Dir+"*.mp3*", faDirectory, sr);!r;r=FindNext(sr))//поиск файлов в папке Dir
        {
                if (sr.Name!=".")
                if (sr.Name!="..")
                ListBox1->Items->Add(Dir+sr.Name); //Вывод: папка+название файла
        }
    // каталог, в котором находятся MP3 файлы выбран
    SoundPath = Dir;
    PlayList(SoundPath);
  }
  }
Но почему то происходит вот такое дублирование...
Миниатюры
SelectDirectory сохранение пути к файлам  
0
512 / 454 / 119
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
10.05.2012, 12:28 7
у меня все в порядке, смотрите в другом месте кода ошибку
Миниатюры
SelectDirectory сохранение пути к файлам  
1
1 / 1 / 1
Регистрация: 11.03.2012
Сообщений: 22
10.05.2012, 13:06  [ТС] 8
Нет у меня здесь ошибка была. Нашел, исправил.
вот это
C++
1
2
SoundPath = Dir;
    PlayList(SoundPath);
уже не нуждается в надобности....
Всем кто помог спасибо ! =)
0
10.05.2012, 13:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.05.2012, 13:06
Помогаю со студенческими работами здесь

ReadLine и пути к файлам
Console.Write("\nУкажите путь сохранения: "); string FilePath = Console.ReadLine();...

Пути к файлам в Томкате.
Подскажите, пожалуйста, как в Томкате при обращении к файлам определить директорию приложения и...

Пути к файлам на Висте
Здравствуйте, Извините за простой вопрос, но я никак не могу разобраться. Сделал программку на...

Не понимает пути к файлам
Есть сайт, структура его следующая. index.php в зависимости от вида командной строки открывает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru