Как вернуть имя файла после переименования
Обновлено: 22.11.2024
Попытка переименовать из в в , при необходимости перемещая его между каталогами. Если переименовать файл и существующий, он будет перезаписан. При переименовании каталога и его существования эта функция выдаст предупреждение.
Параметры
Примечание.
Оболочка, используемая в from должна совпадать с оболочкой, используемой в to .
Примечание: в Windows, если он уже существует, он должен быть доступен для записи. В противном случае rename() завершается ошибкой и выдает E_WARNING .
Возвращаемые значения
Возвращает true в случае успеха или false в случае неудачи.
Примеры
См. также
- copy() — копирует файл
- unlink() — удаляет файл
- move_uploaded_file() — перемещает загруженный файл в новое место.
Примечания, внесенные пользователями 26 примечаний
Сначала код, затем объяснение.
?>
Это не переименовывает файл в папке, как вы можете предположить, вместо этого он перемещает файл в любой рабочий каталог PHP. Скорее всего, вы не найдете его в дереве FTP. Вместо этого используйте следующее:
Из примечаний журнала изменений:
"Предупреждения могут быть сгенерированы, если целевая файловая система не разрешает системные вызовы chown() или chmod() для файлов, например, если целевая файловая система является файловой системой FAT."
В UNIX-подобных операционных системах файловые системы могут быть смонтированы с явным указанием uid и/или gid (например, с параметрами монтирования "uid=someuser,gid=somegroup"). Попытка вызвать rename() с такой целевой файловой системой вызовет предупреждение «Операция не разрешена», даже если файл действительно переименован и rename() возвращает (bool) true.
Это не ошибка. Либо обработайте предупреждение в соответствии с вашим вариантом использования, либо вызовите copy(), а затем unlink(), что позволит избежать обреченных вызовов chown() и chmod(), тем самым устраняя предупреждение.
Для тех, кто все еще не понимает, как работает rename() в Linux и Windows (Windows XP), когда целевой пункт назначения существует:
Я протестировал функцию rename($oldName, $targetName) в PHP 5.3.0 и PHP 5.2.9 на обеих ОС и обнаружил, что если файл с именем $targetName существует ранее, он будет перезаписан содержимым $oldName.
На самом деле, я почти уверен, что rename следует соглашению *nix rename(2) о перезаписи места назначения, если оно существует атомарно (это означает, что ни один другой процесс не увидит, что место назначения перестало существовать даже на мгновение). Это полезно, потому что позволяет вам создать файл как временный файл, а затем переименовать его в нужное вам место, и никто не увидит файл, когда он будет наполовину готов.
Вероятно, переименование ($old, $new) с существующим новым было вызвано проблемами с правами доступа. Бьюсь об заклад, другие проблемы, которые у вас были, были результатом того, что вы не вызвали clearstatcache(), что может привести к тому, что PHP будет вести себя так, как будто файл существует, хотя с тех пор он был удален.
- переименовать расширение файлов
changeext($directory, $ext1, $ext2, $verbose)
Я написал эту функцию, чтобы переименовать расширение некоторых файлов в папке и подпапках внутри нее..
параметр 1: имя каталога
параметр 2: первое расширение, которое мы хотим заменить
параметр 3: новое расширение файлов
для простого использования вызовите функцию:
changeext('dir', 'html', 'php', 'false');
изменить имя каждого файла с расширением html на php в каталоге dir
функция changeext ($directory, $ext1, $ext2, $verbose = false) $num = 0;
if( $curdir = opendir ( $directory )) while( $file = readdir ( $curdir )) if( $file != '.' && $file != '..' )
$srcfile = $каталог . '/' . $ файл ;
$string = "$file";
$str = strlen ( $ext1 );
$стр++;
$newfile = substr ($string, 0, - $str);
$новый файл = $новый файл . '.' . $ext2 ;
$dstfile = $каталог . '/' . $ новый файл ;
if( is_dir ( $srcfile )) $num += changeext ( $srcfile , $ext1 , $ext2 , $verbose );
>
>
>
closedir ( $curdir );
>
вернуть $num ;
>
changeext('dir', 'html', 'php', 'false');
?>
чтобы удалить расширение файлов, просто оставьте параметр $ext2 пустым ''
Обратите внимание, что в Unix переименование — прекрасный способ получить атомарные обновления файлов.
Просто скопируйте старое содержимое (при необходимости) и запишите новое содержимое в новый файл, а затем переименуйте исходный файл.
Любые процессы, читающие из файла, продолжат это делать, любые процессы, пытающиеся открыть файл во время записи в него, получат старый файл (поскольку вы будете писать во временный файл). нет "промежуточного" времени между наличием файла и отсутствием файла (или наличием половины файла).
О, и это работает только в том случае, если у вас есть временный файл и файл назначения в одной и той же файловой системе (например, раздел/жесткий диск).
Если вы случайно получите что-то похожее на это:
('/foo/bar', '/foo/bar');
?>
Возвращает true. Это не задокументировано.
Примечание к примечанию "php at stock-consulting dot com":
Это зависит от операционной системы.
В системах Windows вы не можете переименовать файл в существующее место назначения (хорошо , с инструментами можно, но они отвязывают существующий раньше).
rename() работает в Linux/UNIX, но не работает в Windows в каталоге, содержащем файл, ранее открытый в том же скрипте. Проблема сохраняется даже после правильного закрытия файла и очистки буфера.
Вставка команды sleep() перед переименованием решает проблему.
= fopen( "./dir/ex.txt", "r+");
$text = fread ( $fp , размер файла ("../dir/ex.txt" ));
ftruncate ( $fp , 0 );
$text2 = "некоторое значение" ;
fwrite ($fp, $text2);
flush ( $fp );
fclose ( $fp );
if ( is_resource ( $fp ))
fclose ( $fp );
спать ( 1 ); // это помогает
переименовать ( "./dir" , ".dir2" ); //нет ошибки
?>
Важное примечание: функция rename() НЕ работает для *каталогов* в разных файловых системах или устройствах. Только *файлы*
Вы получите два предупреждения:
"Предупреждение PHP: rename(): первый аргумент функции copy() не может быть каталогом в строке "
"Предупреждение PHP: rename(t2,/ var/run/test/t2): Неверная ссылка на кросс-устройство в строке "
Единственным обходным путем, который я считаю сейчас, является использование PHP copy($source, $dest), а затем, в случае успеха, PHP unlink($source) или выполнение system("mv $source $dest"), что является обманом, и должны быть заключены в кавычки для путей с пробелами или другими метасимволами оболочки и, возможно, экранированы в целях безопасности.
rename() не работает с PHP4 и PHP5 под Windows, если целевой файл существует, независимо от настроек прав доступа к файлу. Теперь я использую функцию, похожую на функцию ddoyle [at] canadalawbook [dot] ca, которая сначала пытается переименовать(), проверяет, вернуло ли оно FALSE, а затем использует copy()/unlink(), если это не удалось.
Однако функция copy(), в отличие от rename(), НЕ пригодна для "атомарных обновлений". Другой процесс может получить доступ к целевому файлу, пока работает функция copy(). В таком случае другой процесс воспринимает файл как пустой или с неполным содержимым ("наполовину написанный").
Обратите внимание, что это НЕ РАБОТАЕТ, если вы пытаетесь переименовать каталог в общий сетевой ресурс.
например.
переименовать('/home/user/me/dir1', '/mnt/shares/nfsmount/dir2')
создаст в общей папке файл с именем 'dir2', а не каталог.
Это меня зацепило, и моим (самым быстрым) решением было использование команд exec и mv:
= 'mv "/home/user/me/dir1" "/mnt/shares/nfsmount/dir2"' ;
exec ($cmd, $output, $return_val);
if ( $return_val == 0 ) <
echo "успех" ;
> else <
echo "сбой" ;
>
?>
Здравствуйте!
Для пользователей unix/linux: полезно знать, что если вы используете rename() для каталога, новый каталог будет создан с текущим umask!
в Windows (XP, Vista, 7.) http://fr.wikipedia.org/wiki/Windows-1252", если имя вашего файла содержит ударение, оно не работает в основном. Поэтому используйте функцию iconv для преобразования от utf-8 до cp1252, как показано ниже:
= iconv ("UTF-8", "CP1252", "C:\\wamp\\www\\tést.txt");
$nomfichierfinal = "C:\\wamp\\www\\test.txt" ;
переименовать ( $nomfichierinitial , $nomfichierfinal );
?>
Начиная с PHP 5.1.4, скомпилированного на Mac, при переименовании с пробелами нужно просто использовать пробел. Возьмем, к примеру:
переименовать("/tmp/somefile.tar", "/mnt/хранилище ноутбука/somefile.tar");
Если вы используете обратную косую черту, например, при переходе к каталогу, переименование не удастся. Пример:
переименовать("/tmp/somefile.tar", "/mnt/laptop\ storage/somefile.tar");
Хотя на самом деле это не ошибка, это немного смутило меня при работе над скриптом резервного копирования.
Неясно, какую кодировку должны иметь аргументы переименования; Для PHP 4.3 в файловых системах HFS+ функция rename() не обрабатывала строки UTF-8 и возвращала ошибку.
Мне нужно было переместить файл в другую папку независимо от того, существовал ли этот файл уже в целевой папке, поэтому я написал небольшую часть, чтобы добавить уникальный номер к каждому файлу.
$rem = $_GET['file'];
$ticket = uniqid(rand(), true);
вывод выглядит следующим образом: 6881432893ad4925a1.70147481filename.txt
Это также поможет, если вы хотите сохранить разные версии файла.
Это было забавно: в Win XP при переименовании выдается сообщение "разрешение определено", если вы пытаетесь переименовать тома. Например, rename("c:\windows\temp\x.txt", "g:\ пункт назначения") не удастся.
Если вы используете SplFileObject для того же файла, который
вы хотите переименовать, вы должны сначала удалить объект SplFileObject.
= 'testFile.txt' ;
$fileObj = новый SplFileObject ( $filePath );
переименовать ($filePath, 'newName.txt');
// Вы получите сообщение об ошибке "Отказано в доступе"
$filePath = 'testFile.txt';
$fileObj = новый SplFileObject ( 'filePath.текст' );
$fileObj = null ;
переименовать ($filePath, 'newName.txt');
// и теперь это работает.
?>
rename() определенно не следует соглашению о переименовании *nix в WinXP с PHP 5. Если $newname существует, он вернет FALSE, а $oldname и $newname останутся в исходном состоянии. Вместо этого вы можете сделать что-то вроде этого:
функция rename_win($oldfile,$newfile) if (!rename($oldfile,$newfile)) if (copy ($oldfile,$newfile)) unlink($oldfile);
вернуть ИСТИНА;
>
вернуть ЛОЖЬ;
>
вернуть ИСТИНА;
>
Как описано на странице unlink():
Вы должны освободить все дескрипторы файла, прежде чем сможете его переименовать (правда, по крайней мере, для Windows).
Это НЕ будет работать, вы будут получать ошибки отказа в разрешении:
= fopen ('tempFile.txt', 'r');
переименовать ('tempFile.txt', 'tempFile2.txt'); // Доступ запрещен!
?>
Просто закройте дескриптор, чтобы исправить это:
= fopen ( 'tempFile.txt' , 'r' );
fclose ( $fileHand );
переименовать ('tempFile.txt', 'tempFile2.txt');
?>
Некоторое время я ломал голову, так как дескриптор был открыт в верхней части функции поля, а переименование было внизу.
Функция rename(), по-видимому, не перемещает файлы размером более 4 ГБ, хотя файловая система поддерживает 32-разрядную операционную систему.
Протестировано здесь с PHP 5.5.9 (x86) в среде Linux (Ubuntu 14.04.5 LTS i686), с исходным файлом (файл RAR 60 ГБ) в файловой системе ext4, а местом назначения является внешний жесткий диск с файловой системой NTFS. Было скопировано только 4 ГБ, а RAR был поврежден: «Неожиданный конец архива».
Не проверено, может ли функция rename() перемещать файлы размером более 4 ГБ в 64-разрядной среде.
Если $oldname и $newname являются существующими жесткими ссылками, ссылающимися на один и тот же файл, функция rename() ничего не делает и возвращает статус успешного выполнения.
(из руководства по базовой libc rename())
С другой стороны, "/bin/mv старое имя новое имя" приводит к удалению "старого имени".
[Примечание редактора: это работает, потому что SplFileObject имеет метод __toString(), который возвращает путь к файлу]
Обратите внимание, что вы можете передать объект SplFileInfo в качестве любого аргумента:
переименовать ('foo', новый SplFileInfo ('bar'));
переименовать (новый SplFileInfo ('bar'), 'foo');
Этот код переименовывает все файлы и папки в определенном каталоге в нижний регистр:
функция getDirectory ($path = '.', $level = 0)
$dh = @ opendir ($path);
while( false !== ( $file = readdir ( $dh )) )
if( ! in_array ( $file , $ignore ))
$spaces = str_repeat ( ' ' , ( $ уровень * 4 ) );
if( is_dir ("$path / $file" ))
echo "$spaces $file
" ;
rename ( $path . "\\" . $file , strtolower ( $path . "\\" . $file ));
getDirectory("$path/$file", ($level+1));
>
else echo " $spaces $file
" ;
rename ( $path . "\\" . $file , strtolower ( $path . "\\" . $file ));
>
>
>
closedir ( $dh );
>
getDirectory ($path, 0)
Если вы переименуете один каталог в другой, где второй каталог существует как пустой каталог, он не будет жаловаться.
Не то, что я ожидал.
[pearcec@abe tmp]$ mkdir test1
[pearcec@abe tmp]$ mkdir test2
[pearcec@abe tmp]$ touch test1/test
[pearcec@abe tmp] $ php
("test1", "test2");
?>
X-Powered-By: PHP/4.0.5
Тип контента: text/html
[pearcec@abe tmp]$ ls -al
всего 12
drwxr-xr-x 3 pearcec commnav 4096 15 июня 13:17 .
drwxr-xr-x 18 pearcec commnav 4096 15 июня 13:15 ..
drwxr-xr-x 2 pearcec commnav 4096 15 июня 13:16 test2
[pearcec@abe tmp]$ ls -la test2/
всего 8
drwxr-xr-x 2 pearcec commnav 4096 15 июня 13:16 .
drwxr-xr-x 3 pearcec commnav 4096 15 июн 13:17 ..
-rw-r--r-- 1 pearcec commnav 0 15 июн 13:16 test
[pearcec@ abe tmp]$
Инструмент многократного переименования позволяет нам переименовывать несколько выбранных файлов одновременно, используя разные средства.
1.1. Рекомендация
Если мы не знакомы с инструментом многократного переименования, прежде чем приступить к его изучению, было бы разумно провести несколько тестов с копиями реальных файлов во временный каталог.
Затем, когда у нас появится идея, мы можем использовать инструмент многократного переименования с реальными файлами.
1.2. Обзор
Предположим, мы загрузили несколько файлов MP3 подкастов.
Возможно, мы захотим переименовать их, чтобы получить значимое имя для каждого.
Именно здесь будет полезен инструмент многократного переименования, поскольку он поможет нам переименовать эти несколько файлов одним действием.
Мы выберем элементы, которые хотим переименовать, на панели.
Затем мы вызываем инструмент многократного переименования из
- главное меню «Файлы» > «Инструмент многократного переименования»
- внутренней командой cm_MultiRename
2. Интерфейс
Это приведет нас к диалоговому окну Multi-Rename Tool, как показано ниже:
Сверху мы видим таблицу с файлами, которые мы выбрали на панели исходного кода, по одному файлу в строке, и которые будут переименованы.
В таблице три столбца:
Идея состоит в том, чтобы произвести некоторые манипуляции, пока столбец «Новое имя файла» не покажет нам фактические новые имена файлов, которые нам нужны.
Затем мы нажмем кнопку "Переименовать", чтобы переименовать файлы.
3. Генерация новых имен файлов
В нашем распоряжении есть инструменты для создания новых имен файлов, которые мы хотим.
4. Заполнители
Давайте посмотрим, какие заполнители мы можем использовать.
4.1. Основные заполнители
Мы определяем их в поле с надписью "Маска" слева.
Как мы видим, мы определяем, что будет использоваться для формирования имени файла и расширения для нашего нового желаемого имени.
Эти заполнители определяются в квадратных скобках.
Как правило, каждый из этих заполнителей возвращает нам строку, которая будет частью либо имени файла, либо его расширения, которое мы хотим создать.
Мы можем определить более одного в строке, и новая часть имени файла будет результатом объединения всех этих элементов.
Основные заполнители следующие:
- [N] обозначает текущее имя файла.
- [E] обозначает текущее расширение файла.
Для этих двух мы можем добавить некоторые заполнители, чтобы отделить диапазон символов от имени файла и/или расширения, которое будет использоваться.
Давайте посмотрим на таблицу, показывающую результат на основе этого примера файла:
Просто чтобы убедиться, что мы поняли идею, вот пример, где мы установили маску для имени файла как [N1,4]-[N5,2]-[N7,2]
Мы видим, что столбец «Новое имя файла» был обновлен после описанных выше замен.
4.2. Другие заполнители
Вот еще несколько заполнителей с тем же образцом файла:
Вот еще один пример, в котором мы использовали некоторые из приведенных выше заполнителей, задав для маски значение
Со временем, при частом использовании, мы будем печатать по памяти то, что нам нужно!
В ожидании этого, к счастью, мы можем нажать кнопку под каждой маской, а затем получить доступ к всплывающему меню, которое поможет нам, чтобы приложение напечатало его для нас в зависимости от того, что нам нужно.
4.3. Заполнители с помощью плагина
Мы также можем использовать заполнитель для плагина контента.
Он извлечет из файла выбранное поле и использует его как часть нового имени, которое мы хотим.
В следующем примере используется мультимедийный плагин для извлечения продолжительности файла подкаста MP3, чтобы поместить его в имя файла между круглыми скобками в имени:
5. Список файлов
Мы также можем использовать текстовый файл, содержащий список имен файлов, для переименования наших файлов.
Будет предполагаться, что каждая строка этого текстового файла содержит новое имя файла, включая расширение, для присвоения соответствующему файлу в том же порядке расположения.
- быть существующим текстовым файлом, который вы создали ранее
- создаваться "на лету" на основе текущего имени файла (столбец "Старое имя файла")
- создаваться "на лету" на основе текущего столбца "Новое имя файла"
5.1. Существующий список
Если у нас уже есть такой файл, мы нажмем кнопку «Редактор» и загрузим имена из файла.
Затем нам будет предложено указать наш список файлов.
Если в файле столько же строк, сколько и элементов, которые необходимо переименовать, мы увидим в столбце «Новое имя файла» новое имя файла для каждого файла.
Фактический процесс переименования произойдет только тогда, когда мы нажмем кнопку "Переименовать".
5.2. Список создается на лету на основе текущего имени файла
Подобно описанному выше Существующему списку, Double Commander может предложить нам на лету создать этот список файлов.
Нажав кнопку «Редактор», а затем «Редактировать имена». инструмент создаст временный текстовый файл на основе исходных имен файлов, которые будут использоваться так же, как и в предыдущем пункте.
5.3. Список создается на лету на основе текущего нового столбца имени файла
То же, что и выше, за исключением того, что имена файлов в списке берутся из текущего столбца «Новое имя файла».
Этот метод может быть особенно полезен в том случае, если метод заполнителей дает нам "почти" нужные нам имена файлов, поэтому нам просто нужно внести некоторые исправления, чтобы исправить те, которые необходимы для удовлетворения наших потребностей.
В следующем примере показан поток событий при использовании этого метода.
6. Модификаторы
Все еще соблюдая и применяя после вышеупомянутых заполнителей и списка файлов, мы можем применить модификаторы, чтобы изменить то, что будет новыми именами файлов.
Эти модификаторы включают:
- Изменение регистра символов
- Поиск и замена последовательности символов на другую
6.1. Дело
Возможны следующие параметры, которые влияют на регистр символов в новых именах файлов:
- Без изменений
- ВЕРХНИЙ РЕГИСТР
- строчные буквы
- Первый символ в верхнем регистре, остальные в нижнем.
- Первый символ каждого слова в верхнем регистре
Даже если этот модификатор находится внутри поля «Маска», он будет применяться и в том случае, если имена файлов взяты из списка.
6.2. Поиск и замена одной последовательности
Мы можем найти одну последовательность символов в строке и заменить ее другой.
6.3. Замена нескольких последовательностей
Но мы также можем заменить разные последовательности одной, поместив последовательности между конвейерами, как в этом примере, где 2020 заменит любое вхождение 2017, 2018 или 2019:
6.4. Несколько пар поиска и замены
Мы также можем определить более одной пары последовательностей, поместив их между конвейерами.
Каждой последовательности для поиска будет определена замена в той же позиции.
6.5. Использование регулярных выражений
У нас также есть возможность использовать регулярные выражения для поисковой части строки, а также для ее замены.
7. Фактическое переименование
Когда мы определили все новые имена файлов, которые нам нужны, с помощью вышеупомянутых методов, мы готовы запустить фактическое действие переименования.
После процесса переименования приложение повторно просканирует файлы и снова заполнит приведенную выше таблицу.
В столбце «Старое имя файла» обычно отображается результат нашего процесса переименования.
Новое имя файла также будет обновлено за счет повторного применения тех же заполнителей/списков/модификаторов, которые все еще определены.
Обычно мы должны уделять больше внимания первому столбцу, так как он представляет новые фактические имена файлов, которые мы только что переименовали.
8. Журнал
Приложение может создать файл журнала или дополнить существующий файл с результатами всех попыток переименования, имевших место при запуске фактического переименования.
Это может быть полезно позже, если мы будем искать исходное имя файла или что-то, что мы непреднамеренно переименовали.
9. Предустановки
Возможно, нам придется повторно использовать те же заполнители/модификаторы для того же типа многократного переименования, что и в предыдущем сеансе.
Вместо того, чтобы снова и снова вводить одну и ту же конфигурацию, которую мы уже делали, мы можем сохранить текущую конфигурацию в предустановке, а затем повторно использовать ее позже.
Для этого мы нажимаем кнопку, дающую доступ к действиям, связанным с предустановками, и выбираем Сохранить как. .
Мы дали значимое имя, и теперь мы добавили своего рода конфигурацию в нашу предустановку.
В следующий раз, когда он нам понадобится снова для пакетного переименования, мы щелкнем раскрывающийся список пресетов, выберем наш пресет, а затем поля будут заполнены тем, что мы сохранили.
Упомянутое меню предлагает нам различные действия, связанные с предустановками, такие как их загрузка, сохранение, переименование, удаление, сортировка и т. д.
10. Дополнительная конфигурация
На страницах конфигурации дополнительные настройки, связанные с инструментом многократного переименования, представлены на специальной странице.
10.1. Показать строку меню вверху
Если мы предпочитаем иметь строку меню в верхней части окна, которая дает нам доступ ко всем соответствующим функциям и просматривать их в меню, мы отмечаем этот параметр.
10.2. Заменить недопустимый символ имени файла на
Может случиться так, что с нашими корректировками в результирующем имени файла появится недопустимый символ для имени файла.
Чтобы избежать ошибки, Double Commander заменит этот недопустимый символ тем, что мы введем в это поле.
Если мы хотим просто удалить недопустимые символы, мы оставляем это поле пустым.
10.3. Предустановлено при запуске
Этот параметр определяет, какая предустановка по умолчанию будет загружаться каждый раз, когда мы вызываем инструмент многократного переименования.
10.4. Выйти с измененным пресетом
Если мы загрузили существующую предустановку, изменили хотя бы одну настройку, а затем попытались выйти из окна инструмента многократного переименования, не сохранив измененную предустановку, этот параметр будет определять поведение Double Commander. .
10.5. Журнал переименования
Эти настройки помогают определить, как обрабатывать сохранение файла журнала переименования.
По устаревшей версии каждый файл журнала переименования определялся в каждой предустановке.
Но с помощью этой опции мы можем дать указание Double Commander сохранять эти журналы в указанном там месте, где результат каждого действия по переименованию будет добавляться в файл журнала переименования.
Как и в других файловых менеджерах, вы можете использовать Files для изменения имени файла или папки.
Чтобы переименовать файл или папку:
Щелкните элемент правой кнопкой мыши и выберите "Переименовать" или выберите файл и нажмите F2.
Введите новое имя и нажмите Enter или нажмите "Переименовать" .
Вы также можете переименовать файл в окне свойств.
При переименовании файла выбирается только первая часть имени файла, а не расширение файла (часть после последнего . ). Расширение обычно указывает на тип файла (например, file.pdf — это документ в формате PDF), и обычно вы не хотите его менять. Если вам нужно также изменить расширение, выберите полное имя файла и измените его.
Если вы переименовали не тот файл или назвали его неправильно, вы можете отменить переименование. Чтобы отменить действие, сразу же нажмите кнопку меню на панели инструментов и выберите «Отменить переименование» или нажмите Ctrl + Z, чтобы восстановить прежнее имя.
Допустимые символы для имен файлов
В именах файлов можно использовать любые символы, кроме символа / (косая черта). Однако некоторые устройства используют файловую систему, которая имеет больше ограничений на имена файлов. Поэтому рекомендуется избегать использования следующих символов в именах файлов: | , \ , ? , * , , " , : , > , / .
Если вы называете файл с расширением . в качестве первого символа файл будет скрыт, когда вы попытаетесь просмотреть его в файловом менеджере.
Распространенные проблемы
В одной папке не может быть двух файлов или папок с одинаковыми именами. Если вы попытаетесь переименовать файл в имя, которое уже существует в папке, в которой вы работаете, файловый менеджер не допустит этого.
Имена файлов и папок вводятся с учетом регистра, поэтому имя файла File.txt не совпадает с FILE.txt . Использование подобных имен файлов разрешено, но не рекомендуется.
Имя файла слишком длинное
В некоторых файловых системах имена файлов могут содержать не более 255 символов. Это ограничение в 255 символов включает как имя файла, так и путь к файлу (например, /home/wanda/Documents/work/business-proposals/… ), поэтому по возможности следует избегать длинных имен файлов и папок.
Вариант переименования недоступен
Если параметр "Переименовать" неактивен, у вас нет прав на переименование файла. Вы должны соблюдать осторожность при переименовании таких файлов, так как переименование некоторых защищенных файлов может привести к нестабильной работе вашей системы. Дополнительную информацию см. в разделе Установка прав доступа к файлам.
На моем домашнем ПК установлена Windows 10, и все обновления установлены. Единственное изменение, которое я сделал, — это создание нового профиля пользователя для работы, чтобы избежать наличия рабочих файлов и рабочих настроек VPN в моем домашнем профиле/профиле администратора. По какой-то причине, когда я переименовываю папку, а затем копирую или перемещаю ее в новый каталог, имя снова меняется на старое. Только переименованные папки, переименованные файлы работают корректно.
- У меня есть папка A, расположенная в папке C:\Users\Work\Desktop\Folder A
- Я переименовываю «Папку A» в «XYZ» и перемещаю/копирую/вырезаю и вставляю ее в C:\Users\Work\Documents\Archive
- После завершения перемещения или копирования они отображаются как «Папка A» в папке «Архив» и «XYZ» в исходном местоположении.
Реклама
Проблема
Начинающий шептун
Просто выстрел в темноте, но.
Есть ли у вас какая-либо облачная служба, синхронизирующаяся с этой папкой «Архив» или, возможно, с родительской папкой дальше по пути?
Вольфи
Кроме того, убедитесь, что вы закрыли файловый менеджер, прежде чем копировать файл!. Перезапустите файловый менеджер и попробуйте еще раз!.
Я не пробовал это, так что это просто выстрел в темноту!.
Акира181
нет облачных служб синхронизации или файловых менеджеров. Происходит с каждой папкой, которую я переименовываю, а затем перемещаю в другую папку. С файлами все в порядке, но имена папок всегда возвращаются к старым после их копирования, перемещения, вырезания и вставки и т. д. Это происходит только в этом новом «рабочем» профиле, который я создал. В моем профиле администратора и обычном профиле этой проблемы нет.
Если это важно, я только что обнаружил, что только вложенные папки в одной папке имеют этот сбой переименования. Кажется, я вырезал и вставил эту папку из своего повседневного профиля в свой рабочий профиль. Это нарушило какие-то настройки разрешений?
Проблема
Начинающий шептун
Если это важно, я только что обнаружил, что только вложенные папки в одной папке имеют этот сбой переименования. Кажется, я вырезал и вставил эту папку из своего повседневного профиля в свой рабочий профиль. Это нарушило какие-то настройки разрешений?
Возможно, это не проблема с разрешением, иначе вы, вероятно, будете получать сообщения об ошибках/уведомлениях "на лицо",
НО
Вероятно, это имеет значение, поскольку я помню, как читал некоторое время назад во время дни XP или, возможно, это было раньше, когда бродили динозавры
ЭТО
Некоторые атрибуты были скорректированы / унаследованы, когда файлы или контейнеры были скопированы, а не перемещены, а некоторые не были, но сохранили свои старые атрибуты из своего предыдущего место нахождения.
Это может быть то, с чем вы столкнулись в этой ситуации.
Я уверен, что есть несколько увлекательных статей (зевает), которые объясняют все это в соответствующем количестве словесного салата, ЕСЛИ вы хотите исследовать это.
Читайте также: