如何为给定文件夹中的所有文件递归切换只读状态

问题描述

how to toggle read-only for a single file in IntelliJ 相关,但不同之处在于我想知道如何一次对给定文件夹中的所有文件递归执行此操作。

由于到目前为止我还无法使用 IntelliJ 找到解决方案,因此我认为这是不可能的。因此,我的问题更具体:如何在 Windows 10 上使用 IntelliJ 终端切换文件夹中所有文件的只读状态。

解决方法

如何在 Windows 10 上使用 IntelliJ 终端切换文件夹中所有文件的只读状态。

在 Windows(至少是 FAT/NTFS)上,这只是设置(或删除)只读属性的问题。根据需要调整文件夹路径。

  • 旧好 cmd.exe-R 删除,+R 设置):
    attrib -R C:\Temp\*.*
    
  • PowerShell 命令将是这样的:
    # This affects only files in THAT folder,no folders or files in subfolders
    Get-ChildItem -Path "C:\Temp" -File | foreach {$_.IsReadOnly = $false}
    
    # This one will affect ALL files in that folder and all subfolders
    Get-ChildItem -Path "C:\Temp" -File -Recurse | foreach {$_.IsReadOnly = $false}
    

注意事项:

  • 使用 $false 删除该属性并使用 $true 设置它。
  • 可以仅用 Get-ChildItem -Path 替换 dir(适用于此类命令)。

不要忘记在进行此类外部操作后使用 File | Reload All from Disk

PS 此类命令可以作为 External Tools entry 实现,以便在项目视图上下文菜单中可用...甚至指定一些自定义快捷方式(但要小心,因为上下文(当前文件夹)在这里很重要。


由于到目前为止我还没有找到使用 IntelliJ 的解决方案,我认为这是不可能的。

为什么?您可以使用 IDE 功能执行相同操作。只需选择多个文件并使用该命令:File | File Properties | Make File Read-Only(如果它们已经处于该模式,将变为 Make File Writable;如果它们混合,将显示 Toggle Read-Only Attribute)。

这里我选择了 2 个文件(3.php4.php)并使用浮动主菜单(否则它会覆盖文件)来显示命令:

enter image description here