Visual Studio - переименование файлов из прописных в строчные - PullRequest
0 голосов
/ 18 февраля 2020

Короткая версия

Я потерял много времени переименование + включение файлов в моих проектах Xamarin.Forms, потому что любое изменение с Upercase на Lowercase (или наоборот) только в файлах , ничего не изменится в файле проекта, поэтому у меня есть несколько вопросов:

  • Есть ли в Visual Studio опция, которая учитывает файл переименование из верхнего регистра в нижний регистр ? ( См. Редактирование ниже )
  • Каков наилучший способ изменения большого количества файлов с Прописные буквы на строчные без удаления / повторного добавления их?
  • Включает ли переименование файла в .csproj непосредственно Передовой опыт ? если нет, то что лучше для этого вида сценария ios?

Более длинная версия + Дополнительная информация

Мне пришлось включить более 2000 изображений (Android + iOS и их соответствующие размеры). Поэтому я начал копировать файлы в правильный каталог и включать их в мобильные проекты, проблема возникла, когда я уже включил файлы в проект, и у некоторых файлов были заглавные буквы, которых я раньше не замечал, поэтому я внес изменения вручную для всех файлов, когда я заметил, что эти изменения не были отражены в обозревателе решений / файле проекта , я попытался вручную и получил эту ошибку:

enter image description here

Редактировать: Кажется, эта проблема была, по-видимому, решена в VS2019 arround v.16.1, но только если файл не был переименован внешне. Так как я сделал это, я получил это предупреждение. Это отвечает на мой первый вопрос.

И одним из решений, которое я нашел, было переименование, например: Foo.png > fooo.png > foo.png

Но это будет экспоненциально отнимать много времени из-за количества файлов Мне пришлось отредактировать, поэтому я сделал этот кусок кода:

string filepath = @"C:\Users\(...)";
DirectoryInfo d = new DirectoryInfo(filepath);

foreach (var file in d.GetFiles("*.png", SearchOption.AllDirectories))
{
    if (file.Name.Any(char.IsUpper))
    {
        File.Move(file.FullName, file.FullName.Replace(file.Name, file.Name.ToLower()));
    }
}

В основном он создает новый файл, но в нижнем регистре, это означает, что мне все еще нужно Удалить старые ссылки и Включить новые файлы . Это кажется неправильным, поскольку подойдет простое переименование.

Какой у меня go вариант здесь?

1 Ответ

2 голосов
/ 18 февраля 2020

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

В целом это означает, что ваш запрос не является естественным в Windows , Может быть, кто-то может дать вам какой-нибудь взлом, но если вы хотите решить эту проблему, быстро переместите ваш проект в Ma c, где это работает по-другому на уровне операционной системы, выполните вашу работу в Visual Studio для Ma c, а затем вы можете продолжать использовать Windows, если хотите.

РЕДАКТИРОВАТЬ: На самом деле я могу сказать вам один взлом для Windows. Сначала переименуйте файл в любое, что вы хотите (например, добавьте 1 в конце), а затем переименуйте его в нужное имя файла. Это будет работать правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...