Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234

Как перезаписать файл?

29.06.2015, 11:56. Показов 4097. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.06.2015, 11:56
Ответы с готовыми решениями:

Файл: Как с помощью Python записать (а не перезаписать) данные из базы SQLite в файл lex.txt.
Помогите с разработкой части проекта, пожалуйста! Есть файл db.sqlite в котором таджикские слова: words А Абад Адиб Асрор ...

Как перезаписать файл?
Есть файл Есть прога которая считает сумму чисел после фамилии и инициалов и лишние пробелы удаляет(если они есть).#include...

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

8
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
29.06.2015, 12:21
lifeforce, привет!
Правильно, что используешь даунлоадманагер. Но тут что-то позабыто, а именно - callback на завершение скачивания. В нём можно что-нибудь поделать. Если же пользователь нажимает несколько раз на скачивание не очень быстро, т.е. сначала ждёт, пока скачается, потом нажимает второй раз, то проблемы и нет совсем.
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
29.06.2015, 13:26  [ТС]
CoolMind,
Цитата Сообщение от CoolMind Посмотреть сообщение
т.е. сначала ждёт, пока скачается, потом нажимает второй раз, то проблемы и нет совсем.
как раз здесь и проблема.
в папке download уже есть файл "файл.тхт" .
запускаю приложение -> нажимаю на кнопку загрузки файла -> загружается файл еще один и с именем "файл1.тхт".
если еще раз запустить приложение и нажать то будет создан опять новый файл "файл2.тхт".
мне надо чтоб при нажатии на кнопку удалялся старый (если он существует) и записывал опять такой-же файл "файл.тхт"
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
29.06.2015, 13:39
lifeforce, изначально я предполагал, что пользователь несколько раз подряд нажимает "Скачать", тогда может быть проблема. В этом случае рекомендуется заблокировать кнопку (а если всё равно нажимается, проверять, скачивается ли файл).
Но поскольку вы описали более простую задачу, то делается проще пареной репы. Сначала проверяете существование файла с таким именем в нужной папке. Если существует - попытайтесь удалить (да, возможно, что не удалится). Затем начинайте скачивать. Тут есть некрасивый момент - а вдруг, не скачается? Интернета нет, или сервер не найден. Тогда вы нужный файл удалите просто так. Поэтому я и рекомендую делать всё в callback'е.
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
29.06.2015, 13:57  [ТС]
Java
1
deleteFile("Download\\file.txt");
так не удаляется. я не знаю как ему сказать что файл на СД карте.
Цитата Сообщение от CoolMind Посмотреть сообщение
некрасивый момент - а вдруг, не скачается? Интернета нет, или сервер не найден.
это уже проблемы пользователя мне нужно чтоб всегда был только один файл. интернет всегда есть. всегда можно повторить и скачать заново.
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
29.06.2015, 14:24
lifeforce, какие-то несложные проблемы, которые вы не хотите решать самостоятельно. Я и без форумов находил на них вопросы просто поиском.
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
29.06.2015, 15:21  [ТС]
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
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
29.06.2015, 17:28
lifeforce, на C++ пишешь, отличия от Java не очень большие, разобраться было просто, если не только копировать чужой код. А даже если и копировать, можно разобраться.
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
29.06.2015, 17:36  [ТС]
CoolMind,
у меня нет времени много думать .

надо быстро дать пользоваться базой данных.
синтаксис здесь немного другой - вот и прошу помощи быстрее все закончить . в дальнейшем продолжу уже с профессиональным подходом -и в будущем пригодятся познания.
огромное спасибо за выделенное внимание.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.06.2015, 17:36
Помогаю со студенческими работами здесь

Как лучше перезаписать файл
Добрый день! Вопрос в принципе простой, что лучше и быстрее будет работать если делать запись и перезапись двумя способами: 1. Создаем...

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

Как перезаписать открытый файл?
Открыл картинку, поместил в pictureBox, изменил в ней что-то. Как перезаписать файл без ошибок gdi и с тем же форматом файла?

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
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