My puppyのブログ

学んだ事や作っているプログラムなどについて書いています。

Windows10とPhpStormでファイル名の大文字と小文字を区別する方法

今回は調べたことのメモです。

Windows10とPhpStormでは通常ファイル名の大文字と小文字が区別されません。

大文字のファイル名「A.txt」と小文字のファイル名「a.txt」が同じものとみなされ、1つのフォルダに同時に配置できないんですね。

その解決方法を調べたのでメモっておきます。

<Windows10の場合>

f:id:ken_tokyo:20200719081656j:plain


(1)デスクトップのタスクバーの検索窓に「Windowsの機能の有効化または無効化」と入力してEnterキーを押すと、「Windowsの機能」ダイアログが表示されます。

(2)ダイアログ内にある「LinuxWindowsサブシステム」のチェックボックスをONにしてOKボタンを押した後、Windows10を再起動します。


f:id:ken_tokyo:20200719071419p:plain

(3)スタートメニューを右クリックして「Windows Powershell(管理者)」を選択して起動します。

(4)「cd c:\MyFolder」の様にコマンドを実行して、ファイル名の大文字と小文字を区別したいフォルダまで移動します。


f:id:ken_tokyo:20200719104257j:plain

(5)該当フォルダまで移動したら、次に以下のコマンドを「Windows Powershell(管理者)」で実行します。

fsutil file setcasesensitiveinfo . enable


f:id:ken_tokyo:20200719104115j:plain

これで「c:\MyFolder」内で「A.txt」と「a.txt」を同時に保存できるようになりました。

ただまだ課題があります。

上記の場合、このコマンドが適用されるのは「c:\MyFolder」のみで、「c:\MyFolder\SubFolder」等のサブフォルダには適用されないんですね。

c:\MyFolder」以下の全てのサブフォルダまで適用したい場合は、以下のコマンドを実行します。

(Get-ChildItem -Recurse -Directory).FullName | ForEach-Object {fsutil.exe file setCaseSensitiveInfo $_ enable}


f:id:ken_tokyo:20200719104553j:plain

このコマンドを実行すると、「c:\MyFolder」以下のサブフォルダまで再帰的に上記コマンドが実行され、ファイル名の大文字と小文字を区別して保存できるようになります。

これでWindows10で「A.txt」と「a.txt」を同じフォルダに同時に保存することができるようになりました。


<PhpStormの場合>

PhpStormのバージョン: 2020.1

f:id:ken_tokyo:20200719085918p:plain


(1)PhpStormのメニューから「Help」→「Edit Custom Propeties...」を選択します。

(2)そうするとダイアログが表示されて「idea.properties」ファイルを作成するかどうかを聞かれるので、作成する(Create)を選択します。

(3)作成した「idea.properties」ファイルに「idea.case.sensitive.fs=true」と入力して保存します。

f:id:ken_tokyo:20200719093241p:plain

(4)PhpStormを再起動すると、Projectウインドウ等でファイル名の大文字と小文字が区別されて表示されます。


<参考にさせて頂いたサイト様>


「Apply setCaseSensitiveInfo recursively to all folders and subfolders」

「Windows 10でLinuxを使う (その16) - ファイル名で大文字と小文字を区別して使う(未来編)」

「Windowsコマンド(fsutil file setCaseSensitiveInfo)」

「Docker for Mac に潜む罠? ファイル名の大文字・小文字の区別」の「追記その2