Topic: Работа с файлами

Дмитрий привет! Подскажи плиз как сделать?

Я беру DBFile ставлю свойство Copyto.
При выполнении программы указываю файл, он мне стягивает его в папку с программой и сохраняет в DBFile.

Собственно все устраивает, но для одного файла. А теперь необходимо в одной записи размещать более одного файла (чтобы предыдущие тоже сохранялись). Всю голову сломал). Может у тебя есть варианты? На форуме не смог найти).

Re: Работа с файлами

По этой же теме.Как удалять файлы из папки по кнопке.Объект удаляется а файлы не удаляются . Напишите какой должен быть скрипт.
Мой недоделанный проект https://cloud.mail.ru/public/6iFw/PHVFEstGF

Re: Работа с файлами

pynikov.dmitry wrote:

Дмитрий привет! Подскажи плиз как сделать?

Я беру DBFile ставлю свойство Copyto.
При выполнении программы указываю файл, он мне стягивает его в папку с программой и сохраняет в DBFile.

Собственно все устраивает, но для одного файла. А теперь необходимо в одной записи размещать более одного файла (чтобы предыдущие тоже сохранялись). Всю голову сломал). Может у тебя есть варианты? На форуме не смог найти).

Здравствуйте.


В данном случае для файлов необходимо завести отдельную таблицу с внешним ключом, в которой будете хранить файлы.
Проект с примером:

Post's attachments

Attachment icon Employees - a lot of files.zip 187.95 kb, 418 downloads since 2017-02-27 

Dmitry.

Re: Работа с файлами

scorpirus wrote:

По этой же теме.Как удалять файлы из папки по кнопке.Объект удаляется а файлы не удаляются . Напишите какой должен быть скрипт.
Мой недоделанный проект https://cloud.mail.ru/public/6iFw/PHVFEstGF

Здравствуйте.


Это можно сделать с помощью небольшого скрипта, пример:

Post's attachments

Attachment icon Employees - a lot of files and delete file.zip 183.19 kb, 462 downloads since 2017-02-27 

Dmitry.

Re: Работа с файлами

Спасибо огромное за помощь!) Дмитрий всегда выручаешь). Респект и уважуха!!!!!

6 (edited by scorpirus 2017-05-09 09:10:07)

Re: Работа с файлами

Спасибо Дмитрий за ответ.

Вопрос по теме,который заинтересует не только меня.

Есть пример базы: https://cloud.mail.ru/public/KyuR/4753B8ySx

Нужны скрипты
1.На удаление файла(ов) из поддиректории,пример: ВАСИЛИЙ\09.05.2017 - 00час 37мин\Koala.jpeg
2.На удаление поддиректории,пример: ВАСИЛИЙ\09.05.2017 - 00час 37мин
3.На удаление самой директории вместе с поддиректорией и файлом(и)

Если не затруднит,можно каждому пункту отдельный скрипт?

Re: Работа с файлами

scorpirus wrote:

Спасибо Дмитрий за ответ.

Вопрос по теме,который заинтересует не только меня.

Есть пример базы: https://cloud.mail.ru/public/KyuR/4753B8ySx

Нужны скрипты
1.На удаление файла(ов) из поддиректории,пример: ВАСИЛИЙ\09.05.2017 - 00час 37мин\Koala.jpeg
2.На удаление поддиректории,пример: ВАСИЛИЙ\09.05.2017 - 00час 37мин
3.На удаление самой директории вместе с поддиректорией и файлом(и)

Если не затруднит,можно каждому пункту отдельный скрипт?


Скачайте пожалуйста последнюю бета версию, добавил функцию для получения поддиректорий в директории
https://www.dropbox.com/s/4sb2tk75rauoj … b.zip?dl=0


1. DeleteFile('имя файла для удаления');
2. RemoveDir('имя директории для удаления'); // удаляет директорию если в ней нет файлов
3. Для удаления директории с поддиректориями и файлами используйте данный скрипт

function DeleteDirWithFiles(dir: string): boolean;
var
    sl: TStringList;
    i,c: integer;
begin
    result := True;
    sl := TStringList.Create;
    sl.Text := GetFilesList(dir);

    // удаляем все файлы
    c := sl.Count-1;
    for i := 0 to c do
        if not DeleteFile(sl[i]) then
        begin
            ShowMessage('Can''t remove file '+sl[i]);
            result := False;
        end;

    // удаляем поддиректории
    sl.Text := GetDirectories(dir);
    c := sl.Count-1;
    for i := c downto 0 do
        if not RemoveDir(sl[i]) then
        begin
            ShowMessage('Can''t remove dirercory '+sl[i]);
            result := False;
        end;

    // удаляем директорию
    RemoveDir(dir);
    sl.Free;
end;

пример использования

procedure Form1_Button4_OnClick (Sender: string; var Cancel: boolean);
var
    sDir: string;
begin
    sDir := ExtractFilePath(Application.ExeName)+'ВАСИЛИЙ\';

    if not DeleteDirWithFiles(sDir) then
        ShowMessage('Can''t remove directory');
end;
Dmitry.

8 (edited by scorpirus 2017-05-10 21:55:28)

Re: Работа с файлами

Дмитрий,ещё раз спасибо!

Если есть время,ответь пожалуйста на пару вопросов.

1.Что нужно прописать в примере за место "ВАСИЛИЙ",
чтоб удалять выбранные директории(папки) из TableGrid?

procedure Form1_Button4_OnClick (Sender: string; var Cancel: boolean);
var
    sDir: string;
begin
    sDir := ExtractFilePath(Application.ExeName)+'ВАСИЛИЙ\';

    if not DeleteDirWithFiles(sDir) then
        ShowMessage('Can''t remove directory');
end;

2.Как в этом скрипте прописать одну общую папку,в которой
будут создаваться все последующие папки с файлами?

procedure vvod_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
   vvod.DBFile1.dbCopyTo:= vvod.Edit1.Text+'\' +FormatDateTime('dd.mm.yyyy - hhчас mmмин', now)+'\';//Создаёт папку с именем архива
end;

Второй вопрос отменяется. У меня получилось так: Добавил ( 'ARHIV\' + ) перед ( vvod.Edit1.Text )

procedure vvod_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
   vvod.DBFile1.dbCopyTo:= 'ARHIV\' +vvod.Edit1.Text+'\' +FormatDateTime('dd.mm.yyyy - hhчас mmмин', now)+'\';//Создаёт папку с именем архива
end;

Остался первый вопрос.Как удалить папки с файлами из общей папки ARHIV,не удаляя саму общую папкуARHIV .

sDir := ExtractFilePath(Application.ExeName)+' Какие данные сюда внести? ';