Форум программистов, компьютерный форум, киберфорум
Delphi: FireMonkey
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 29.08.2019
Сообщений: 20

Как получить доступ к TPatch

29.08.2019, 21:07. Показов 2568. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Делал проект, где хотел реализовать сохранение резервной копии папки с файлами.
Это всё работает отлично. Если выйти из приложения и снова зайти, то можно извлечь копию папки из указанного пути
Но есть один момент. Если произвести заново компиляцию или установку apk на телефон, то
мне сообщает об недоступности того пути, куда я сохранял копию папки. Видится мне, что этот путь где-то хранится, до того, пока заново не произвести установку. Проверить визуально наличие файлов я не могу, так как использую путь к внутренней памяти, которая скрывает мои файлы. Что тут требуется сделать?

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
Копирую папку с файлами по другому TPath
 
procedure TForm4.Button12Click(Sender: TObject);
begin
Tdirectory.Copy(TPath.GetDocumentsPath + '/' + 'dir',
TPath.GetHomePath + '/' + 'dircopy');
end;
 
Копирую папку обратно
procedure TForm4.Button13Click(Sender: TObject);
begin
Tdirectory.Copy(TPath.GetHomePath +  '/' + 'dircopy',
TPath.GetDocumentsPath +  '/' + 'dir');
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.08.2019, 21:07
Ответы с готовыми решениями:

Как получить доступ к ftp, http и ssh по VPN через роутер, если есть доступ к samba?
Есть системник с Ubuntu Server 12.04. Он находится за роутером. На системнике стоит PPTP VPN. На роутере проброшены vpn порты на системник,...

Как получить доступ к файлам через сетевую папку (создать файлы в сетевой или просто получить список)?
Как получить доступ к файлам через сетевую папку (создать файлы в сетевой или просто получить список) C++ Через FindFileData пробовал - не...

как получить доступ?
Здравствуйте! Я выполняю нужный мне запрс при помощи ADOQuery. Подскажите как мне получить доступ к нужной мне ячейкам в запросе?

10
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 21
29.08.2019, 22:16
папки GetDocumentsPath GetHomePath доступны только самому приложению и убиваются вместе с приложением при его удалении
0
0 / 0 / 0
Регистрация: 29.08.2019
Сообщений: 20
29.08.2019, 22:32  [ТС]
Тогда выход какой? Прописывать ручками пути типа '/storage/sdcard/........./ ?
и создавать свои пути. Но я изначально не любитель таких методов, так как возможно на другом устройстве такой путь
и работать не будет. А какие ещё есть варианты?
0
0 / 0 / 0
Регистрация: 29.08.2019
Сообщений: 20
30.08.2019, 12:52  [ТС]
В общем, если кому надо, я пока использовал такой вариант:

в папке проекта, в AndroidManifest.template.xml и AndroidManifest.xml выставил разрешение на запись и чтение с внешней памяти устройства

XML
1
2
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Далее в проекте:
Delphi
1
var  MyPath:TFileName='/storage/sdcard0/MyFolder';

В Deployment выставил
значение assets/external

B проекте:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm4.Button12Click(Sender: TObject);
begin
Tdirectory.Copy(MyPath + '/' + 'dir',
MyPath + '/' + 'dircopy');
end;
 
procedure TForm4.Button13Click(Sender: TObject);
begin
Tdirectory.Copy(MyPath + '/' + 'dircopy',
MyPath + '/' + 'dir');
 
end;
С таким вариантом всё прекрасно робит. Только нужно ещё файлы и папки сделать скрытыми.
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 21
30.08.2019, 13:48
и в целом зря
потому что пути /storage/sdcard0/ запросто может и не быть...
кроме того, при работе в новых ОС Андроид, вам мало иметь разрешение в манифесте (оно, кстати в свойствах проекта есть, можно не лазить руками)
нужно еще каждый раз запрашивать разрешение пользователя
0
0 / 0 / 0
Регистрация: 29.08.2019
Сообщений: 20
30.08.2019, 20:55  [ТС]
Да, я понимаю это, но то крайность и могу только конкретно для своего устройства сделать так. Поэтому и хотел найти иные правильные решения.

Добавлено через 5 часов 44 минуты
А Вы Можете подсказать насчёт TDirectory.SetAttributes?
Сколько перерыл форумов, ничего подходящего не нашёл. С Первым параметром понятно, а вот второй никак не хочет рабоать.
Не могу сообразить TDirectory.SetAttributes('fileName', FileAttributes......); вот этот второй параметр что то требует, он подчёркивает красным. Как с ним рабоать, может есть примеры внятные?
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 21
30.08.2019, 22:20
чем не подошли папки GetSharedxxx ?
0
0 / 0 / 0
Регистрация: 29.08.2019
Сообщений: 20
31.08.2019, 00:38  [ТС]
Да, хорошо что вы подсказали. У меня для манёвра негусто путей


Delphi
1
2
3
4
5
6
7
TPath.GetSharedRingtonesPath;
TPath.GetSharedDownloadsPath;
TPath.GetSharedAlarmsPath;
TPath.GetSharedMoviesPath;
TPath.GetSharedMusicPath;
TPath.GetSharedCameraPath;
TPath.GetSharedPicturesPath;

путь TPath.GetSharedDocumentsPath не подходит, так как образуется такая же
Android\data\com.embarcadero.Project4\ в которой все файлы удаляются к чёрту.

Единственный подходящий выбор это TPath.GetSharedDownloadsPath;
Вот с ним всё работает как надо. Всё сохраняется, не зависимо от удаления приложения.


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
var
  Form4: TForm4;
   MyPath: string;
 
 
procedure TForm4.FormCreate(Sender: TObject);
 
begin
 
  MyPath:=TPath.GetSharedDownloadsPath;
 
end;
Теперь только как сделать их скрытыми?
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 21
31.08.2019, 07:47
ну же по каждой функции есть оф. доки, и там написано, что и как
нужно их просто прочитать
например, вот
http://docwiki.embarcadero.com... PublicPath
0
0 / 0 / 0
Регистрация: 29.08.2019
Сообщений: 20
31.08.2019, 10:11  [ТС]
Там я уже лазил, но там примеров нет, только описание метода. Но что-то не получается. Вот я пишу метод

Delphi
1
TFile.SetAttributes('C:\Test3\test1.txt', [TFileAttribute.faHidden]);
и компилятор ругается на faHidden что это неправильный тип Erroneous type.

Чего то не хватает, я чего то недопонимаю.
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 21
01.09.2019, 09:44
у меня не ругается совершенно, компилирует

есть замечательная вещь - исходники
делаем Ctrl+Click и проваливаемся туда в System.IOUtils.pas
и видим там
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
{$IFDEF MSWINDOWS}
  TFileAttribute = (faReadOnly, faHidden, faSystem, faDirectory, faArchive,
    faDevice, faNormal, faTemporary, faSparseFile, faReparsePoint, faCompressed,
    faOffline, faNotContentIndexed, faEncrypted, faSymLink) platform;
{$ENDIF MSWINDOWS}
{$IFDEF POSIX}
  TFileAttribute = (faNamedPipe, faCharacterDevice, faDirectory, faBlockDevice,
    faNormal, faSymLink, faSocket, faWhiteout, faOwnerRead, faOwnerWrite,
    faOwnerExecute, faGroupRead, faGroupWrite, faGroupExecute, faOthersRead,
    faOthersWrite, faOthersExecute, faUserIDExecution, faGroupIDExecution,
    faStickyBit) platform;
{$ENDIF POSIX}
faHidden бывает только под windows
если у вас Traget Platform - Android, то тут сразу две ошибки
путь такой не бывает и типа такого тоже нет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.09.2019, 09:44
Помогаю со студенческими работами здесь

Как получить доступ
Если вы использовали когда нибудь систему сборки Scons то как вы получали доступ к установке в Префиксную папку, то есть мне нужно в корень...

Как получить доступ к памяти ?
Добрый день. Не подскажет ли кто: &quot;Подправляю&quot; чужую DLL-ку (Win32). Понадобилось сохранить где-нибудь в памяти (&quot;рядом&quot;) ...

Как получить доступ к переменной?
не могу получить значение переменной username

Как получить root-доступ?
Подскажите, как получить рут доступ на устройстве asus fonepad ME371MG 3G . За ранее спасибо.

Как из VB получить доступ к БД в и-нете?
Привет всем! Как из VB получить доступ к БД в и-нете? Хочу из локальной проги на VB администрировать БД Access в и-нете. Может кто...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru