Я назвал папку символом пробела, и теперь, когда я переключился на Windows, мне нужно переименовать ее

14

Я назвал папку "", символ для пробела.

В Linux вы можете создавать папки только с пробелом. Теперь, когда я переключился на Windows, я не могу переместить папку, в которой есть папка с именем "". Также я не могу ничего перемещать в самой папке или переименовывать папку.

Я пробовал Unlocker 1.9.2, и он тоже не работал. Он попросил меня выполнить операцию при перезагрузке, я согласился и ничего не сделал.

Как я могу переименовать папку с именем "" из Windows?

user285603
источник
11
Переключиться обратно на Linux и переименовать его?
Raystafarian
1
Это обходной путь, а не решение. Хотя это может быть самый быстрый способ, если у вас есть liveCD.
Хеннес
нет, у меня нет концертного CD
user285603 30.12.13
1
Я не уверен, что это возможно. http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx утверждает: «Не заканчивайте имя файла или каталога пробелом или точкой. Хотя основная файловая система может поддерживать такие имена, оболочка Windows и пользовательский интерфейс нет ". Отдельный пробел также считается окончанием пробела. :(
Hennes
2
Установите Cygwin.
Даниэль Р Хикс

Ответы:

17

На самом деле это не правда, что это невозможно в Windows. Это можно исправить с помощью утилит SFUA в подсистеме для приложений на основе UNIX в Windows 7 (версия Ultimate). Я просто сделал так:

JdeBP ~/Desktop %mkdir ' '
JdeBP ~/Desktop %ls -ldQ ' '
drwxr-xr-x  1 JdeBP  None  0 Dec 30 16:14 " "
JdeBP ~/Desktop %mv ' ' space
JdeBP ~/Desktop %rmdir space
JdeBP ~/Desktop %

Вместо использования rmdirя мог бы просто удалить spaceпапку с рабочего стола с помощью проводника Windows; или сделал что-нибудь еще, включая доступ к его содержимому (если бы оно было).

Проблема не в самой Windows NT. Это правила подсистемы Win32 для имен файлов. POSIX subsysem не навязывает те же правила.

JdeBP
источник
но нет способа переименовать папку?
user285603 30.12.13
3
Выше показано, как папка переименовывается .
JdeBP
2
Просто чтобы прояснить это способ подробнее: Юникс способ переименования файла состоит в т о v е это новое имя.
Хеннес
Ох ... да, пытался использовать это ... Слишком сложно для меня.
user285603
7
@ user285603 Вам просто нужно скачать SUA , установить его, а затем запустить команды, представленные здесь. Это не так сложно! Чего ты ожидал? Волшебное слово?
Тердон
8

Вы можете попробовать:
переименовать папку, используя 7-Zip


Протестировано на Win7 x64 с портативной версией 7-Zip

Действия по воспроизведению:

  1. Создать папку (F7) с именем по умолчанию: «Новая папка»

  2. Переименуйте «Новая папка» в «»

  3. Переименовать "" обратно в "Новая папка"


Этот ответ похож на ответ, который решает «Как удалить папку, содержащую завершающие пробелы»: /superuser//a/366583/163596

Иван Чау
источник
6

Лучше всего использовать живой компакт-диск Linux, а затем переименовать папку и использовать ее в Windows. AFAIK и другие заявили, что нет способа сделать это с помощью Windows. Если бы я мог найти способ, я бы отредактировал свой пост.

avirk
источник
3
Режим Nitpick: «Нет способа сделать это с помощью Windows». Нет. Нет способа сделать это, используя обычный Windows API. Программа для Windows, которая использует собственный интерфейс с файловой системой, а не Win32 API, все еще может это делать.
Хеннес
Оттенки Norton Utilities от Dos days, редактируйте файловую систему на диске вручную. Это файловая система FAT (предположительно, не EXT2-4)? Вы должны просто иметь возможность перезаписать его на диске с помощью подходящего редактора.
Маккензм
2

Как уже отмечалось, проблема заключается в пользовательских интерфейсах Windows, а не в файловой системе Windows.

Если вы можете писать практически на любом языке программирования, и этот язык имеет библиотечную функцию, которая позволит вам манипулировать файловой системой, вы сможете быстро написать минимальную программу, которая позволит вам переименовать этого зверя.

Или, как уже отмечали другие, вы можете попробовать использовать подстановочный подход. ? является односимвольным символом подстановки; если у вас нет других файлов или каталогов с односимвольными именами, вы можете попробовать «ren? foo» и посмотреть, достаточно ли этого, чтобы пропустить проверки специального случая для пробела.

keshlam
источник
Как это работает с другими зарезервированными или специальными символами, такими как <(меньше чем)> (больше чем): (двоеточие) "(двойная кавычка) / (косая черта) \ (обратная косая черта) | (вертикальная черта или труба)? (Вопрос знак) * (звездочка)?
Мотивировано
Существуют способы экранирования практически любого печатного символа, практически в любой схеме ввода строки. (Иногда и непечатные.) Прочитайте прекрасное руководство ... Или, как я уже сказал, подстановочные знаки соответствуют им.
Кешлам
Это предполагает, что у вас есть возможность избежать любого персонажа, поскольку я столкнулся с проблемой сторонних приложений. Например, конкретные приложения резервного копирования или синхронизации, особенно если вы передаете файлы из одной файловой системы в другую. Как вы решаете эти вопросы?
Мотивировано
Если приложение не может обработать допустимое имя файла, это проблема с этим конкретным приложением. Свяжитесь с сообществом пользователей, авторами и / или поставщиками и спросите их, является ли это ошибкой, которую они исправляют (и если есть обходной путь), дизайнерским решением (в этом случае вы переименовываете файл или используете другое приложение, на ваш выбор), или если вы просто не поняли, как это сделать в этом приложении. Так же, как и с чем-то еще, с чем у вас проблемы. То же самое, что было сделано в этом самом вопросе. ОС делает правильные вещи.
keshlam
Что вы имеете в виду, что ОС делает правильные вещи?
Мотивировано
2

Я использую XP, так что не уверен в специфических нюансах Windows 7, но с помощью Cygwin мне удалось создать папку с именем «», содержащую несколько случайных файлов, а затем с помощью команды mv переименовать папку и сохранить ее содержимое.

Перейдите в папку / path / of / the / parent /

mv "" newfoldername

ящерица
источник
0

Это определенно не проверено, но из любопытства это может быть решение:

  1. Переместите любые другие папки, которые находятся в родительской папке вашей " "папки

  2. Запустите PowerShell и перейдите в родительскую папку.

  3. Бегать Remove-Item .\*

Тор
источник
Из ОП: «Я ничего не могу переместить в папку».
Хеннес
@Hennes Я воспринял это как «Я не могу ничего переместить в папку, которая называется пробелом», а не как «Я ничего не могу переместить в родительскую папку».
Тор
Я могу ошибаться. Ожидание, пока OP добавит больше информации о тестировании (и действительно любопытно, как с этим справиться).
Хеннес
@Hennes Нам просто нужно подождать и посмотреть!
Тор
1
ОП хочет переименовать его, а не удалить , предположительно потому, что хочет сохранить в нем вещи ...
Изката,