Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как указать путь при переименовании файлов

40K
07 декабря 2008 года
Iscander1
11 / / 04.11.2008
При переименовании файлов,к примеру, использую такой вариант :
 
Код:
procedure TForm1.Button1Click(Sender: TObject);
   begin
      if not RenameFile('С:\Documents and Settings\User\Мои документы\Мои рисунки\Вася',
      'С:\Documents and Settings\User\Мои документы\Мои рисунки\Коля')
   then ShowMessage('Не найден !');
   end;

По умолчанию диск ( С )
Вопрос :Как указать путь к файлу что бы он не был привязан к определенному
диску (C,D,E...),а только к тому на котором в данный момент запущена система.
261
07 декабря 2008 года
ahilles
1.5K / / 03.11.2005
функция GetWindowsDirectory. Первая буква пути это и есть путь буква диска, на котором стоит система.
397
07 декабря 2008 года
SergPas
527 / / 03.02.2007
Ну, как вариант, можно воспользоваться WinAPI функцией:
 
Код:
function GetWindowsDirectory(lpBuffer: PChar; uSize: UINT): UINT;

Функция помещает в lpBuffer путь к системной папке "Windows". Например "C:\Windows"... Извлекаем первый символ, который и будет сисетмным диском загруженной системы.
P.S. Пользуйте поиском по сайту...
397
07 декабря 2008 года
SergPas
527 / / 03.02.2007
Цитата:
функция GetWindowsDirectory. Первая буква пути это и есть путь буква диска, на котором стоит система.


Чуточку опоздал... :)

40K
07 декабря 2008 года
Iscander1
11 / / 04.11.2008
Что то не пошло...Либо я неправильно объяснил.Мне надо что бы программа установленная,допустим ,на диске С и работала с файлами из этого диска.Если установлена на Е,то и переименовывала файлы на Е.
397
07 декабря 2008 года
SergPas
527 / / 03.02.2007
А... Ну так бы сразу сказали... тогда поможет функция paramstr(0), которая возвращает полное имя программы, из которой эта функция была вызвана.... :)
40K
07 декабря 2008 года
Iscander1
11 / / 04.11.2008
SergPas если можно немного поподробней ?
397
07 декабря 2008 года
SergPas
527 / / 03.02.2007
Цитата:
SergPas если можно немного поподробней ?


А куда ещё подробней?!
Допустим Ваша программа Project1.exe находится в каталоге "D:\Install\Programs\"... тогда paramstr(0) вернет "D:\Install\Programs\Project1.exe"... Из этой строки извлекаете нужную букву диска...

261
07 декабря 2008 года
ahilles
1.5K / / 03.11.2005
showmessage('Буква текущего диска - '+ParamStr(0)[1]);
397
07 декабря 2008 года
SergPas
527 / / 03.02.2007
Цитата:
ParamStr(0)[1]


Ну или так...

1.9K
08 декабря 2008 года
andriano
474 / / 10.01.2008
Если не указывать букву диска, то файл по умолчанию подразумевается на том диске, где находится рабочая папка программы.
Так что никаких ухищрений вообще предпринимать не нужно. Т.е. "\Install\Programs\Project1.exe".
40K
08 декабря 2008 года
Iscander1
11 / / 04.11.2008
Все получилось.Благодарю за помощь и терпимость ahillesа и SergPasа
Если кого заинтересовал этот вопрос то сейчас код выглядит так:

procedure TForm1.Button1Click(Sender: TObject);
begin
if not RenameFile(ParamStr(0)[1]+':\Documents and Settings\User\Мои документы\Мои рисунки\Вася',
ParamStr(0)[1]+'С:\Documents and Settings\User\Мои документы\Мои рисунки\Коля')
then ShowMessage('Не найден !');
end;
14
09 декабря 2008 года
Phodopus
3.3K / / 19.06.2008
Цитата: andriano
Если не указывать букву диска, то файл по умолчанию подразумевается на том диске, где находится рабочая папка программы.
Так что никаких ухищрений вообще предпринимать не нужно. Т.е. "\Install\Programs\Project1.exe".


Далеко не всегда. Текущий каталог (относительно которого это условие и соблюдается) может быть неявно сменен вызванными функциями ОС/библиотек.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог