Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2009, 12:10   #11
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Это предупреждение означает, что код не будет работать под Linux / Kylix.
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 30.01.2009, 15:18   #12
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,239
По умолчанию

Цитата:
Сообщение от rpy3uH Посмотреть сообщение
Иногда нужно создать сразу несколько папок подряд, но функция CreateDir и API функции CreateDirectory, CreateDirectoryEx позволяют создать только одну папку т.е. ту папку которая самая последняя.
например, если нужно создать папку c:\papka1\podpapka1\podpapka3 при том что папки c:\papka1 или c:\papka1\podpapka1 не существует, то ничего не получится, т.е. эти функции позволяют создать папку только в существующей папке.
Вот код функции которая создаёт папку. функции можно передать ЛЮБОЙ допустимый путь и она создаст его. Допустимость пути не проверяется, даже если путь недопусти, никакого исключения не будет, потому что используются API, следовательно потом можно получить код ошибки через GetLastError.
Код:
procedure makedir(value:string);
var i,x:integer;
    cur_dir:string;
    RootDir:String;
begin
  RootDir:=value[1]+value[2]+value[3];
  SetCurrentDirectory(pchar(RootDir));
  x:=1;
  cur_dir:='';
  if (value[1]='\') then x:=2;
  for i:=x to Length(value) do
   begin
    if not (value[i]='\')then
      cur_dir:=cur_dir+value[i];
    if (value[i]='\')or (i=length(value)) then
     begin
      if not DirectoryExists(cur_dir) then
       CreateDirectory(pchar(cur_dir),0);
      SetCurrentDirectory(pchar(cur_dir));
      cur_dir:='';
     end;
   end;
end;
Практика показала, что если, например, передан путь d:\456\6*6\567, то получается так d:\456\567, в общем папка с неправильным именем игнорируется
Папки с под папками, если их много, можно создать через: ForceDirectories
Alter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать папку с текущей датой Dorvir Microsoft Office Excel 1 16.07.2008 10:10
Как программно через delphi создать папку на диске? VenMaster Общие вопросы Delphi 5 25.05.2008 21:09
создать папку в том месте откуда запущен exe Stanislav Общие вопросы Delphi 1 22.11.2007 17:58
как создать папку matus Помощь студентам 2 05.11.2007 22:19
определить папку мандарин Общие вопросы Delphi 5 13.05.2007 17:20