Як я можу перейменувати файл, ім'я якого саме по собі є повним шляхом (наприклад, починається з "g: \")? [дублікат]


30

На це питання вже є відповідь тут:

Я ненароком створив файл, названий g:\filename.csvу Windows XP за допомогою сценарію Python.

Зверніть увагу, що g:\filename.csvце ім'я файлу. Насправді це збережено на F: накопичувачі.

Я не можу перейменувати його за допомогою командного рядка ( ren oldfilename newfilename) або за F2допомогою вікна Провідника. У ньому написано "не вдається прочитати з диска" - Windows вважає, що файл знаходиться на диску G:.

Чи є спосіб перейменувати його?


робить *filename.csvроботу?
BlueRaja - Danny Pflughoeft

8
Крім того, хоча ви вже маєте своє рішення, чи можете ви опублікувати код, який створив файл? Я не думав, що API файлів Windows навіть дозволяють вам вказати недійсне ім’я файлу ..
BlueRaja - Danny Pflughoeft

5
Ви повинні подати помилку в Linux / Ubuntu. Драйвер файлової системи повинен знати, що це неправильне ім'я файлу для цільового диска, а отже, не повинен дозволяти створювати такий файл. Він все ще повинен дозволяти адресувати такі файли, якщо вони вже існують, щоб видалити або перейменувати їх, хоча.
Деволус


2
Насправді в цьому імені файлу немає нічого недійсного, що стосується NTFS, це лише обмеження Windows, яке не дозволяє йому правильно посилатися.
Фогг

Відповіді:


21

Це не може бути найшвидшим рішенням, але воно має працювати.
Якщо ви завантажуєте дистрибутив Live Linux, ви можете його видалити, оскільки Linux використовує інший метод для ідентифікації розділів і не буде змушений думати, що ваш файл є накопичувачем. Я пропоную вам Parted Magic , який має багато зручних інструментів для обслуговування диска та системи, і, крім вашої проблеми, завжди корисно мати його під рукою.


1
Я подвійний завантаження з Ubuntu. Тож це можна легко спробувати. Дозвольте спробувати і дати відгук тут. Спасибі.
Vineet

7
Зроблено. З Ubuntu я видалив. файл. Спасибі.
Vineet

1
У мене раніше була найвища відповідь, яка сказала, що використовується \\? \ Перед іменем. Я помилявся, і цей метод не працюватиме, тому я видалив свою відповідь. Вам потрібно скористатися методом цієї відповіді або однією з інших відповідей.
Скотт Чемберлен

7

Якщо ваша ОС Windows, то ви можете скористатися наступним трюком:

1. Issue command `dir /X`
2. Find out your file in 8 dot 3 notation
3. Use 8 dot 3 notation for file operations as ren, del, copy, print and others.

Зауважте, якщо вам вдалося створити файл із іменем conчи іншим зарезервованим іменем пристрою Windows, то вам не пощастить із цим підходом.


6

Ви також можете спробувати ...

З Windows Command Prompt:

ren "F:???filename.csv" "filename.csv"

або

ren "F:*.csv" "filename.csv"

4

Ви завжди можете спробувати Cygwin . Фільтр імен шляхів у ньому повинен відповідати цьому виду помилок, оскільки це не порушує стандартів POSIX. Встановіть bash та fileutils, а потім спробуйтеrm /cygdrive/f/g:\\filename.csv

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.