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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2007, 07:57   #1
мандарин
Пользователь
 
Регистрация: 22.04.2007
Сообщений: 31
По умолчанию как создать папку

как создать папку
мандарин вне форума Ответить с цитированием
Старый 10.05.2007, 08:08   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию Каталог

CreateDir(const Dir: string): Boolean — создает новый каталог на диске.

MkDir(const S: string) — аналог функции CreateDir. Отличие в том, что в случае ошибки при создании каталога функция MkDir создает исключительную ситуацию.

DeleteFile(const FileName: string): Boolean — удаляет файл с диска.

DirectoryExists(const Directory: string): Boolean — проверяет, существует ли заданный каталог на диске.
Пример:
if DirectoryExists(ExtractFilePath(App lication.ExeName)+'Image')=false then
CreateDir(ExtractFilePath(Applicati on.ExeName)+'Image');
SERG1980 вне форума Ответить с цитированием
Старый 10.05.2007, 20:28   #3
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Иногда нужно создать сразу несколько папок подряд, но функция 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, в общем папка с неправильным именем игнорируется
rpy3uH вне форума Ответить с цитированием
Старый 11.06.2007, 11:46   #5
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Sorry что снова поднял тему =)
Делфи - идеальная среда для ленивых программистов =)
ForceDirectories
http://delphi.about.com/library/rtl/...irectories.htm
пыщь
JTG вне форума Ответить с цитированием
Старый 11.06.2007, 14:13   #6
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Я так уже несколько раз сам писал функции, а потом узнавал что в Delphi они есть
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 30.01.2009, 09:11   #7
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Хм... Благодарю всех за позезную информацию...

А как проверить существует ли файл?..
И как можно изменять атрибуты файла...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 30.01.2009, 09:17   #8
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
А как проверить существует ли файл?..
Код:
Procedure TForm1.Button1Click(Sender: TObject);
Begin
If FileExists('Путь к файлу') Then
Begin
//Файл существует
End
Else
Begin
//Файл не существует
End;
End;
Цитата:
И как можно изменять атрибуты файла...
Код:
Procedure TForm1.Button1Click(Sender: TObject);
Begin
FileSetAttr('Путь к файлу',{Атрибут} FaHidden);
//FileSetAttr('Путь к файлу',{Атрибут} FaReadOnly); //и т.д.
End;
Всегда рад помочь!

Последний раз редактировалось Terran; 30.01.2009 в 09:20.
Terran вне форума Ответить с цитированием
Старый 30.01.2009, 09:41   #9
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Благодарю...

Вот нашёл по названию функции "FileExists":
Цитата:
Функция FileExists проверяет существование файла, функция возвращает True, если данный файл существует. Если файл существует, но пользователь не имеет прав на его просмотр, то будет возвращено False.
Как быть в таком случае?..
И можно ли как-то изменять через Делфи права доступа к файлам и каталогам?.. (как умеет досовская программа "cacls")
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 30.01.2009, 11:22   #10
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

А что значит "[Warning] Unit1.pas(59): Symbol 'faHidden' is specific to a platform" ..?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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