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

Ваш аккаунт

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

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

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

Help!!! Kak programmno sozdat katalog i perekopirovat tuda dannyje

1.9K
14 декабря 2004 года
Underworld
68 / / 29.03.2004
Nikak nepolucajetsia mne vyzvat ShellExecute ().


ShellExecute(NULL, "mkdir", NULL, "c:\\backup\\nc", NULL , SW_HIDE);

Tut delo takoje:
HINSTANCE ShellExecute(
HWND hwnd, // handle to parent window
LPCTSTR lpOperation, // pointer to string that specifies operation to perform
LPCTSTR lpFile, // pointer to filename or folder name string
LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters
LPCTSTR lpDirectory, // pointer to string that specifies default directory
INT nShowCmd // whether file is shown when opened
);

lpOperation eto nazvanije komady kotoruju xociu vyzvat'. Tak, ja ponimaju.

lpParameters eto parametry toj komady, v etom slucaje, po mojemu dolzen byt put'.

Mozet ja cevoto ne ponial. Pomogite pozaluista.
259
14 декабря 2004 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by Underworld
Nikak nepolucajetsia mne vyzvat ShellExecute ().


ShellExecute(NULL, "mkdir", NULL, "c:\\backup\\nc", NULL , SW_HIDE);

Tut delo takoje:
HINSTANCE ShellExecute(
HWND hwnd, // handle to parent window
LPCTSTR lpOperation, // pointer to string that specifies operation to perform
LPCTSTR lpFile, // pointer to filename or folder name string
LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters
LPCTSTR lpDirectory, // pointer to string that specifies default directory
INT nShowCmd // whether file is shown when opened
);

lpOperation eto nazvanije komady kotoruju xociu vyzvat'. Tak, ja ponimaju.

lpParameters eto parametry toj komady, v etom slucaje, po mojemu dolzen byt put'.

Mozet ja cevoto ne ponial. Pomogite pozaluista.



The following example creates a directory ‘C:\temp’ if it does not already exist.

 
Код:
#include <Filectrl.hpp>
void __fastcall TForm1::Button1Click(TObject *Sender)

{
  if (!DirectoryExists("c:\\temp"))
  {
    if (!CreateDir("C:\\temp"))
      throw Exception("Cannot create c:\\temp directory.");
  }
}

Читайте Help пожалуйста!!!!!!

Copies the source file to the destination file.


function CopyFileTo(const Source: string; const Destination: string): Boolean;

Parameters

const Source: string

Source file name.


const Destination: string

Destination file name.


Returns

Boolean - True if the file is copied, False on error.


Description

CopyFileTo is a function used to copy the file specified in Source to the file specified in Destination.
CopyFileTo will return False if the file in Destination already exists.
CopyFileTo encapsulates the platform-specific calls needed to perform the file copy operation. On the Windows platform, this is the Win32 API function CopyFile. On the Linux platform, CopyFileTo uses a TFileStream instance to create the destination file.
301
14 декабря 2004 года
lord Kelvin
897 / / 08.11.2004
Код:
ForceDirectories([COLOR=red]"c:\\tempo"[/COLOR]);
 TSearchRec sr;
 if(FindFirst([COLOR=purple]"c:\\xiaoxiao\\[/COLOR]*.*",faAnyFile,sr)==0)
 {
  do
  {
   if(sr.Name[1]=='.')continue;
   CopyFile(AnsiString([COLOR=purple]"c:\\xiaoxiao\\"[/COLOR]+sr.Name).c_str(),AnsiString([COLOR=red]"c:\\tempo\\"[/COLOR]+ExtractFileName(sr.Name)).c_str(),false);
  }while (FindNext(sr) == 0);
  FindClose(sr);
 }

Создаем на диске C: папку [COLOR=red]tempo[/COLOR] и копируем туда содержимое папки [COLOR=purple]xiaoxiao[/COLOR]
1.9K
15 декабря 2004 года
Underworld
68 / / 29.03.2004
Цитата:
Originally posted by AlexandrVSmirno


The following example creates a directory ‘C:\temp’ if it does not already exist.
 
Код:
#include <Filectrl.hpp>
void __fastcall TForm1::Button1Click(TObject *Sender)

{
  if (!DirectoryExists("c:\\temp"))
  {
    if (!CreateDir("C:\\temp"))
      throw Exception("Cannot create c:\\temp directory.");
  }
}


A poprobuj za odin raz sozdat katalog po puti
c:\temp\a\b\c\d

i iz funkcyji CreateDir polucis exception.
a vot mkdir mozet takoj fint.
Escio raz povtoriaju: Mne nuzno vyzvat ShellExecute s komandoj mkdir i podat' emu ves ukazannyj put'. Kak eto sdelat?

P.S. ne nado mne borlandskije funkcyji predlogat, oni ne rabotajut tak kak mne nado.

259
15 декабря 2004 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by Underworld
Nikak nepolucajetsia mne vyzvat ShellExecute ().


ShellExecute(NULL, "mkdir", NULL, "c:\\backup\\nc", NULL , SW_HIDE);

Tut delo takoje:
HINSTANCE ShellExecute(
HWND hwnd, // handle to parent window
LPCTSTR lpOperation, // pointer to string that specifies operation to perform
LPCTSTR lpFile, // pointer to filename or folder name string
LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters
LPCTSTR lpDirectory, // pointer to string that specifies default directory
INT nShowCmd // whether file is shown when opened
);

lpOperation eto nazvanije komady kotoruju xociu vyzvat'. Tak, ja ponimaju.

lpParameters eto parametry toj komady, v etom slucaje, po mojemu dolzen byt put'.

Mozet ja cevoto ne ponial. Pomogite pozaluista.



Тогда давай подробнее:
1 Что значит не получается?
2 Если выдает ошибки, то какие?
3 Почему не подходят стандартные функции борланд. Написать создание двух подряд поддиректорий не так уж и сложно.

 
Код:
CreateDir("C:\\backup");
SetCurrentDir("C:\\backup");
CreateDir("nc");


PS: Есть еще ForceDirectories(...) см. выше.
1.9K
15 декабря 2004 года
Underworld
68 / / 29.03.2004
Цитата:
Originally posted by AlexandrVSmirno


Тогда давай подробнее:
1 Что значит не получается?
2 Если выдает ошибки, то какие?
3 Почему не подходят стандартные функции борланд. Написать создание двух подряд поддиректорий не так уж и сложно.
 
Код:
CreateDir("C:\\backup");
SetCurrentDir("C:\\backup");
CreateDir("nc");


PS: Есть еще ForceDirectories(...) см. выше.



ne v osibkax sut'. Delo v tom cto mne nuzno perekopirovat dannyje s odnovo kompa na drugoj.
Dopustim:
est' server. V niom est' katalog backup.
est' moj komp. u mneia xraniatsia dannyje. ja zapuskaju svojo prilozenije. ukazyvaju cto sochraniat'. t.e. put do kataloga kotoryj nuzno perenesti v \\server\backup.
dalse, pered kopirovanijem dannyx, ja na servere sozdaju katalog so svoim kompovskim nazvanijem->
polucajetsia: \\server\backup\underworld\
potom v mojej programke est' puti:
c:\nc
c:\mail\underworld\inbox
i t.d.
ja otkidyvaju tolko disk (c:\), polucaju ostavsyjsia put' (mail\underworld\inbox)
Tak vot etot katalog mne i nuzna perekinut v server, tak ctoby put' polucilsia:

\\server\backup\underworld\nc
\\server\backup\underworld\mail\underworld\inbox

xoroso esli tolko stolko budet katalogov, a esli ix budet kucha?
to takoj fint create->change->create, ne ocen xorosaja ideja.

Tak vot skazy mne pozaluista, mogu li ja zapustit standartnuju OS komandu mkdir, cerez shell execute i kak eto sdelat? ctoby mne ne nuznobyloby 10 raz prokrucivat cykly, i 10 raz sozdavat katalogi.

6.3K
15 декабря 2004 года
xTrim
38 / / 11.06.2004
нет, ну вот все-таки почитайте HELP по уже показанным вам функциям в частности ForceDirectories
нет я лучше уж процитирую сразу

Цитата:
Creates a new directory, also creating parents as needed.



угу?

1.9K
15 декабря 2004 года
Underworld
68 / / 29.03.2004
Цитата:
Originally posted by xTrim
нет, ну вот все-таки почитайте HELP по уже показанным вам функциям в частности ForceDirectories
нет я лучше уж процитирую сразу
гу?



ForceDirectories podxodit. ja uze poproboval. no mne interesno kak eto sdelat' s ShellExecute!!!!!!!!!!!!!

259
15 декабря 2004 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by Underworld


ne v osibkax sut'. Delo v tom cto mne nuzno perekopirovat dannyje s odnovo kompa na drugoj.
Dopustim:
est' server. V niom est' katalog backup.
est' moj komp. u mneia xraniatsia dannyje. ja zapuskaju svojo prilozenije. ukazyvaju cto sochraniat'. t.e. put do kataloga kotoryj nuzno perenesti v \\server\backup.
dalse, pered kopirovanijem dannyx, ja na servere sozdaju katalog so svoim kompovskim nazvanijem->
polucajetsia: \\server\backup\underworld\
potom v mojej programke est' puti:
c:\nc
c:\mail\underworld\inbox
i t.d.
ja otkidyvaju tolko disk (c:\), polucaju ostavsyjsia put' (mail\underworld\inbox)
Tak vot etot katalog mne i nuzna perekinut v server, tak ctoby put' polucilsia:

\\server\backup\underworld\nc
\\server\backup\underworld\mail\underworld\inbox

xoroso esli tolko stolko budet katalogov, a esli ix budet kucha?
to takoj fint create->change->create, ne ocen xorosaja ideja.

Tak vot skazy mne pozaluista, mogu li ja zapustit standartnuju OS komandu mkdir, cerez shell execute i kak eto sdelat? ctoby mne ne nuznobyloby 10 raz prokrucivat cykly, i 10 raz sozdavat katalogi.



Ну если уж так хочется попробуй через функции низкого уровня:
int execl(char *path, char *arg0 *arg1, ..., *argn, NULL); int _wexecl(wchar_t *path, wchar_t *arg0 *arg1, ..., *argn, NULL); int execle(char *path, char *arg0, *arg1, ..., *argn, NULL, char **env); int _wexecle(wchar_t *path, wchar_t *arg0, *arg1, ..., *argn, NULL, wchar_t **env); int execlp(char *path, char *arg0,*arg1, ..., *argn, NULL); int _wexeclp(wchar_t *path, wchar_t *arg0,*arg1, ..., *argn, NULL); int execlpe(char *path, char *arg0, *arg1, ..., *argn, NULL, char **env); int _wexeclpe(wchar_t *path, wchar_t *arg0, *arg1, ..., *argn, NULL, wchar_t **env); int execv(char *path, char *argv[]); int _wexecv(wchar_t *path, wchar_t *argv[]); int execve(char *path, char *argv[], char **env); int _wexecve(wchar_t *path, wchar_t *argv[], wchar_t **env); int execvp(char *path, char *argv[]); int _wexecvp(wchar_t *path, wchar_t *argv[]); int execvpe(char *path, char *argv[], char **env); int _wexecvpe(wchar_t *path, wchar_t *argv[], wchar_t **env);

1.9K
16 декабря 2004 года
Underworld
68 / / 29.03.2004
NU vsio vrode polucilos. Spasibo vsem za pomosch.

Est' escio odin vopros.
Kak uznat skolko vsevo failov v kataloge? est kakaja nibud funkcyja ili nuzno prokrucivat cykl i scitat?
259
16 декабря 2004 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by Underworld
NU vsio vrode polucilos. Spasibo vsem za pomosch.

Est' escio odin vopros.
Kak uznat skolko vsevo failov v kataloge? est kakaja nibud funkcyja ili nuzno prokrucivat cykl i scitat?


На сколько я знаю, в силу особенностей файловой системы, которая на самом деле представляет из себя связанный список, сразу посчитать количество файлов в директории не возможно. Следовательно даже если и есть такая функция в библиотеке (в чем я лично сомневаюсь), она все равно будет крутить цикл. Так что разницы ни какой нет. Крути сам. Это не сложно. Тем более, что в цикле ты можешь сразу еще и копировать.

1.9K
16 декабря 2004 года
Underworld
68 / / 29.03.2004
Цитата:
Originally posted by AlexandrVSmirno

На сколько я знаю, в силу особенностей файловой системы, которая на самом деле представляет из себя связанный список, сразу посчитать количество файлов в директории не возможно. Следовательно даже если и есть такая функция в библиотеке (в чем я лично сомневаюсь), она все равно будет крутить цикл. Так что разницы ни какой нет. Крути сам. Это не сложно. Тем более, что в цикле ты можешь сразу еще и копировать.



Srazu koppirovat ja ne mogu, potomucto uznat kolicestvo failov mne nuzno dlia Progressbara. Ctoto tipa Standartnovo windows copy dialoga.

No eto vsio xernia. dalse uze razbirus. :)

Priveliko blagodaren AlexandrVSmirno ;)

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