【问题标题】:How to toggle Read-Only Status recursively for all files in a given folder如何为给定文件夹中的所有文件递归切换只读状态
【发布时间】:2021-01-19 10:55:14
【问题描述】:

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

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

【问题讨论】:

    标签: windows file intellij-idea jetbrains-ide readonly


    【解决方案1】:

    如何在 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

    P.S. 这样的命令可以作为External Tools entry 实现,因此它可以在项目视图上下文菜单中使用......甚至可以分配一些自定义快捷方式(但请注意作为上下文(当前文件夹)在这里很重要)。


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

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

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

    【讨论】:

    • 为了解决你的最后一点,我已经知道了。但是,当给定的文件夹包含很多复杂的嵌套子目录时,它就不起作用了,那么你不能只移动选择所有文件而不包括子目录。
    • @SebastianNielsen 不清楚您是否要影响所有文件:在该文件夹和所有子文件夹中。更新了我的 PowerShell 示例以提供这两个选项。
    • @SebastianNielsen 你试过更新了吗?对所有文件递归执行的 PowerShell 命令。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多