Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
ExFau$t
213 / 196 / 39
Регистрация: 08.05.2012
Сообщений: 1,117
#1

Переименовать файл - Android

10.09.2016, 22:37. Просмотров 179. Ответов 7
Метки нет (Все метки)

Добрый вечер, маленькая проблема, нужно переименовать файлик - переименовываю по-простому:

Java
1
2
3
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() ...);
                    File file2 = new File(Environment.getExternalStorageDirectory().getAbsolutePath() ...);
                    file.renameTo(file2);
Переименовывается нормально, с содержимым порядок, но почему-то в директории ещё остаётся недофайл с предыдущим именем, не открывается, не копируется. Его как бы нет, но он есть.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2016, 22:37     Переименовать файл
Посмотрите здесь:

Как переименовать проект в eclipse? Android
При записи в файл, в какую папку записывается файл? Android
Android Файл: создать файл в приложении для хранения характеристик персонажа
Android Переименовать столбец в SQLite таблице без потери данных
Android Как переименовать название кнопок в готовом приложении

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
3057 / 1859 / 195
Регистрация: 13.01.2012
Сообщений: 7,076
11.09.2016, 06:41     Переименовать файл #2
ExFau$t, чем вы этот файл видите - не проводником ПК случайно?
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
11.09.2016, 07:08     Переименовать файл #3
Возможно ДРУГОЙ процесс удерживает файл...
Цитата Сообщение от ExFau$t Посмотреть сообщение
но почему-то в директории ещё остаётся недофайл с предыдущим именем, не открывается, не копируется. Его как бы нет, но он есть.
Возможно кто-то еще "удерживает" этот файл открытым!
По крайней мере в винде это всегда так бывает...
ExFau$t
213 / 196 / 39
Регистрация: 08.05.2012
Сообщений: 1,117
11.09.2016, 10:43  [ТС]     Переименовать файл #4
vxg, телефон тоже его видит, да и пробовал я MediaScannerConnection.
REALIST07
Автор FAQ
Автор FAQ
174 / 174 / 13
Регистрация: 11.06.2010
Сообщений: 932
11.09.2016, 14:40     Переименовать файл #5
ExFau$t, а вы удаляете file2?
Можно хардкорно перезаписать его:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Copy the source file to target file.
// In case the dst file does not exist, it is created
void copy(File source, File target) throws IOException {
 
    InputStream in = new FileInputStream(source);
    OutputStream out = new FileOutputStream(target);
 
    // Copy the bits from instream to outstream
    byte[] buf = new byte[1024];
    int len;
 
    while ((len = in.read(buf)) > 0) {
        out.write(buf, 0, len);
    }
 
    in.close();
    out.close();
}
ExFau$t
213 / 196 / 39
Регистрация: 08.05.2012
Сообщений: 1,117
11.09.2016, 16:17  [ТС]     Переименовать файл #6
REALIST07, удалить файл, в который я переименовал? И мне не надо ничего переписывать, только изменить имя и потом корректно просматривать в проводнике в телефоне и на ПК.
vxg
Модератор
3057 / 1859 / 195
Регистрация: 13.01.2012
Сообщений: 7,076
11.09.2016, 16:29     Переименовать файл #7
ExFau$t, у меня переименовывает корректно. Дайте воспроизводящий ситуацию пример
ExFau$t
213 / 196 / 39
Регистрация: 08.05.2012
Сообщений: 1,117
11.09.2016, 16:42  [ТС]     Переименовать файл #8
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
builder.setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/InfoSystem/Files/PhotoInfo.txt");
                    File file2 = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/InfoSystem/Files/PhotoInfo" + Long.toString(System.currentTimeMillis()) + ".txt");
                    file.renameTo(file2);
                    MediaScannerConnection.scanFile(context,
                            new String[]{Environment.getExternalStorageDirectory().getAbsolutePath() + "/DCIM/InfoSystem"}, null,
                            new MediaScannerConnection.OnScanCompletedListener() {
                                public void onScanCompleted(String path, Uri uri) {
                                    Log.i("ExternalStorage", "Scanned " + path + ":");
                                    Log.i("ExternalStorage", "-> uri=" + uri);
                                }
                            });
                }
            });
Yandex
Объявления
11.09.2016, 16:42     Переименовать файл
Ответ Создать тему
Опции темы

Текущее время: 15:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru