【问题标题】:Visual Studio - Renaming Files From Uppercase to LowercaseVisual Studio - 将文件从大写重命名为小写
【发布时间】:2020-02-18 12:51:31
【问题描述】:

短版

我发现自己在我的 Xamarin.Forms 项目中浪费了大量时间重命名 + 包括文件,因为仅在文件中从大写到小写(反之亦然)的任何更改都不会导致任何更改所以在项目文件中,所以我有几个问题:

  • Visual Studio 中是否有一个选项可以考虑文件从大写字母重命名为小写字母? (见下方编辑
  • 在不删除/重新添加文件的情况下将大量文件从大写变为小写的最佳方法是什么?
  • 重命名文件是否直接包含在.csproj 中是一种良好做法?如果不是,那么最适合这种情况的是什么?

加长版 + Adicional 信息

我必须包含 2000 多张图片(Android + iOS 及其各自的尺寸)。所以我开始将文件复制到正确的目录并将它们包含在移动项目中,当我已经将文件包含在项目中并且某些文件具有我以前没有注意到的大写字母时,问题就出现了,所以我进行了更改手动查看所有文件,当我注意到这些更改未反映在解决方案资源管理器/项目文件中时,我手动尝试并收到此错误:

编辑:似乎这个问题在 VS2019 arround v.16.1 中显然是 resolved,但前提是文件没有在外部重命名。既然我这样做了,我就收到了这个警告。这回答了我的第一个问题。

我发现的一个解决方案是重命名为: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()));
    }
}

它所做的基本上是创建一个新文件,但使用小写字母,这意味着我仍然必须删除旧引用包含新文件。这似乎不对,因为简单的重命名就可以了。

我的选择是什么?

【问题讨论】:

  • @HansPassant 我的 Visual Studio 版本是 16.3.9,到 2019 年 11 月 5 日,开发者社区接受的 awnser 是从 2019 年 5 月 17 日开始,这是 arround 16.1 /16.2 预览版,我唯一不同的是在解决方案资源管理器中更改之前直接重命名文件,我将尝试在解决方案资源管理器中添加一个文件并重命名
  • @HansPassant 刚刚尝试过并且它有效,在解决方案资源管理器中重命名文件而没有任何外部更改它没有给我错误,但问题仍然存在,因为在解决方案资源管理器中进行批量文件重命名仍然比重新添加它们要慢,并且重命名文件夹中的文件不会反映在解决方案资源管理器中,但很好发现!我想如果你以 Anwser 的形式呈现这个,尽管没有解决问题,它可能会帮助其他可能需要它的人

标签: c# android windows visual-studio xamarin


【解决方案1】:

Windows作为操作系统是操作系统的优势,大小写没有区别。因此,在今天的状态下,Windows 将具有相同字母的文件视为相同,尽管从技术上讲它可以记住并在文件名中显示大小写。

总的来说,这意味着您的请求在 Windows 中是不自然的。也许有人可以为您提供一些技巧,但是如果您想快速解决此问题,请将您的项目移至 Mac,在该 Mac 上这在操作系统级别上的工作方式有所不同,请在 Visual Studio for Mac 中执行您的操作,然后您可以继续使用 Windows如果你愿意的话。

编辑:实际上,我可以告诉你一个适用于 Windows 的 hack。首先将文件重命名为您想要的任何名称(例如在末尾添加 1),然后将其重命名为所需的文件名。它会正常工作。

【讨论】:

  • 或者做两次重命名 - 添加一个字母,删除字母和小写。完成。
  • 在“Longer Version + Adicional Info”中,我已经提供了“hack”以及重新添加小写文件的方法,我正在寻找一种更快或不同的解决方案,但谢谢你给我的第一个信息
  • @TomTom 我认为我已经在您发表评论之前使用相同的信息更新了答案:)。
  • 为了更安全:通过添加新的文件扩展名来重命名。然后在重新启动时,您可以查找此文件并将其删除 - 因此崩溃不会给您留下损坏的文件名;)
【解决方案2】:

我有同样的问题。就我而言,这些文件位于 .csproj(项目文件)中,名称为小写。从 .csproj 中删除受影响的行修复了问题。

在 Visual Studio 2019 中 - 在解决方案资源管理器中右键单击项目名称 -> 选择“编辑项目文件”

在 ItemGroup 下找到有问题的文件,您可以删除该行或编辑文件名。删除文件没有任何副作用,因为我知道我在做什么,你的里程可能会有所不同。

只需在记事本中剪切并粘贴删除或重命名,以防您想返回,Ctrl-z 也可以:)

【讨论】:

    猜你喜欢
    • 2019-04-10
    • 2014-02-09
    • 1970-01-01
    • 2013-12-13
    • 2011-04-18
    • 2011-05-15
    • 1970-01-01
    • 2018-12-17
    • 2011-12-08
    相关资源
    最近更新 更多