Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
lifeforce
181 / 141 / 38
Регистрация: 27.09.2010
Сообщений: 846
#1

Как перезаписать файл? - Программирование Android

29.06.2015, 11:56. Просмотров 698. Ответов 8
Метки нет (Все метки)

Всем привет!
по нажатию на кнопку идет скачивание файла через интернет - все ОК!
но если нажать повторно то опять произойдет скачивание файла и будет дописан новый в регистром 1.2...... и.т.д.
файл.тхт - первый раз загружен
файл1.тхт - второй раз загружен,
...... и, т.д.

но мне надо чтоб файл оставался только один! (файл.тхт).
возможно его надо удалить а потом записать снова.

как это можно реализовать вот в этом коде?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 Button buttonDownload = (Button) findViewById(R.id.button);
        buttonDownload.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Uri uri = Uri.parse(downloadFileUrl);
                DownloadManager.Request request = new DownloadManager.Request(uri);
 
//                set the notification
                request.setDescription("My Download")
                        .setTitle("Notification Title");
 
//                set the path to where to save the file
//                      save in app package directory
                request.setDestinationInExternalFilesDir(MainActivity.this,
                        Environment.DIRECTORY_DOWNLOADS, "logo.jpg");
//                      save in the public downloads folder
//                request.setDestinationInExternalPublicDir(Environment.
//                              DIRECTORY_DOWNLOADS, "MyWebsiteLogo.png");
 
//                make file visible by and manageable by system's download app
                request.setVisibleInDownloadsUi(true);
 
//                select which network, etc
                request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI
                        | DownloadManager.Request.NETWORK_MOBILE);
 
//                queue the download
                myDownloadReference = downloadManager.enqueue(request);
            }
        });
буду всем благодарен за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2015, 11:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как перезаписать файл? (Программирование Android):

Как перезаписать,создать путь к папке с кешом - Программирование Android
Здравствуйте.Решил здесь задать вопрос.У меня в андроиде была папка "obb" с кешем для игры.Игра функционировала,кеш писала в правильную...

Как перезаписать файл? - C++
Использую потоки fstream, не могу найти информации о том, как перезаписать файл или же вернуть указатель на {0;0} файла

Как перезаписать class файл - Java SE
Как перезаписать class файл в jar архиве??? Идея такая : Программа соединяется с сервером и запрашивает актуальную версию ,точней...

Как перезаписать текстовый файл? - C#
Мне нужно перезаписать текстовый файл. Но не полностью, а только последний отделенный кусок строки(|). Например: было 002|Федор...

Как перезаписать файл, а не дописать в него? - C++ Builder
Подскажите пожалуйста как при сохранении с использованием SaveDialog и SaveToFile перезаписать файл, а не дописать в него. Код на всякий...

Как при чтении файла удалить первые 5ть строк и перезаписать в новый файл - Matlab
Уважаемое сообщество! помогите пожалуйста с таким вопросом - как при чтении файла удалить первые 5ть строк и перезаписать в новый файл,...

8
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,734
29.06.2015, 12:21 #2
lifeforce, привет!
Правильно, что используешь даунлоадманагер. Но тут что-то позабыто, а именно - callback на завершение скачивания. В нём можно что-нибудь поделать. Если же пользователь нажимает несколько раз на скачивание не очень быстро, т.е. сначала ждёт, пока скачается, потом нажимает второй раз, то проблемы и нет совсем.
0
lifeforce
181 / 141 / 38
Регистрация: 27.09.2010
Сообщений: 846
29.06.2015, 13:26  [ТС] #3
CoolMind,
Цитата Сообщение от CoolMind Посмотреть сообщение
т.е. сначала ждёт, пока скачается, потом нажимает второй раз, то проблемы и нет совсем.
как раз здесь и проблема.
в папке download уже есть файл "файл.тхт" .
запускаю приложение -> нажимаю на кнопку загрузки файла -> загружается файл еще один и с именем "файл1.тхт".
если еще раз запустить приложение и нажать то будет создан опять новый файл "файл2.тхт".
мне надо чтоб при нажатии на кнопку удалялся старый (если он существует) и записывал опять такой-же файл "файл.тхт"
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,734
29.06.2015, 13:39 #4
lifeforce, изначально я предполагал, что пользователь несколько раз подряд нажимает "Скачать", тогда может быть проблема. В этом случае рекомендуется заблокировать кнопку (а если всё равно нажимается, проверять, скачивается ли файл).
Но поскольку вы описали более простую задачу, то делается проще пареной репы. Сначала проверяете существование файла с таким именем в нужной папке. Если существует - попытайтесь удалить (да, возможно, что не удалится). Затем начинайте скачивать. Тут есть некрасивый момент - а вдруг, не скачается? Интернета нет, или сервер не найден. Тогда вы нужный файл удалите просто так. Поэтому я и рекомендую делать всё в callback'е.
0
lifeforce
181 / 141 / 38
Регистрация: 27.09.2010
Сообщений: 846
29.06.2015, 13:57  [ТС] #5
Java
1
deleteFile("Download\\file.txt");
так не удаляется. я не знаю как ему сказать что файл на СД карте.
Цитата Сообщение от CoolMind Посмотреть сообщение
некрасивый момент - а вдруг, не скачается? Интернета нет, или сервер не найден.
это уже проблемы пользователя мне нужно чтоб всегда был только один файл. интернет всегда есть. всегда можно повторить и скачать заново.
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,734
29.06.2015, 14:24 #6
lifeforce, какие-то несложные проблемы, которые вы не хотите решать самостоятельно. Я и без форумов находил на них вопросы просто поиском.
0
lifeforce
181 / 141 / 38
Регистрация: 27.09.2010
Сообщений: 846
29.06.2015, 15:21  [ТС] #7
CoolMind,

я С++ пишу проги. написал программу для поиска клиентов на карте и поиска аварий (повреждения по линии телевидения) и чтоб не таскать с собой компьютер , там где есть все нужные файлы - я их отправляю на сервер а все коллеги просто закачивают уже готовые карты и списки напрямую на телефон.

Сейчас нашел еще одно решение , но что-то тоже не работает.
Java
1
2
3
4
5
6
7
8
9
10
11
 // получаем путь к SD
                File sdPath = Environment.getExternalStorageDirectory();
                sdPath = new File(sdPath.getAbsolutePath() + "/Download/");
                // формируем объект File, который содержит путь к файлу
                File sdFile = new File(sdPath, "File.xlsx");
 
    private void deleteFile(File sdFile) {
        if(!sdFile.exists())
            return;
        deleteFile(sdFile);
    }
Добавлено через 29 минут
решил .

Java
1
2
3
4
                // получаем путь к SD
                File sdPath = Environment.getExternalStorageDirectory();
                sdPath = new File(sdPath.getAbsolutePath() + "//Download//File.xlsx");//
                sdPath.delete();
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,734
29.06.2015, 17:28 #8
lifeforce, на C++ пишешь, отличия от Java не очень большие, разобраться было просто, если не только копировать чужой код. А даже если и копировать, можно разобраться.
0
lifeforce
181 / 141 / 38
Регистрация: 27.09.2010
Сообщений: 846
29.06.2015, 17:36  [ТС] #9
CoolMind,
у меня нет времени много думать .

надо быстро дать пользоваться базой данных.
синтаксис здесь немного другой - вот и прошу помощи быстрее все закончить . в дальнейшем продолжу уже с профессиональным подходом -и в будущем пригодятся познания.
огромное спасибо за выделенное внимание.
0
29.06.2015, 17:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2015, 17:36
Привет! Вот еще темы с ответами:

Текстовые файлы. Перезаписать файл f в файл h, так, чтобы в файле h были записаны только числа - Pascal ABC
Создать текстовый файл f, состоящий из произвольных слов и чисел, записанных в одну строку. Перезаписать содержание файла f в файл h, так,...

Перезаписать .txt файл - C#
Здравствуйте , мне нужно перезаписать .txt файл , при этом изменить в нем пару строк . Я написал код : string mass_str =...

Перезаписать текстовый файл. - Delphi
Подскажите пожалуйста. У меня такая проблема, мне нужно сохранить 6 значений из Edit -ов в файл, но когда сохраняю 2 и послед. раза, мне...

Перезаписать в mdf файл - SQL Server
Люди добрые кто может сохранить в mdf данный код? (sql полетел, а бд срочно нужна) CREATE TABLE `Untitled` ( `Id_zapisi` int(5) NOT...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.