2

В macOS 10.13.4 для некоторых файлов .java Finder отображает "Java Source" для kMDItemKind (т. Е. Столбец "Kind" в представлении "Список"), но для некоторых других файлов .java он отображает "Source Code" , даже в той же папке.

Как я могу убедиться, что все файлы .java постоянно имеют kMDItemKind = "Java Source"?

Вот вывод mdls для файла, который отображает "Java Source":

kMDItemContentCreationDate             = 2017-08-08 08:51:42 +0000
kMDItemContentCreationDate_Ranking     = 2017-08-08 00:00:00 +0000
kMDItemContentModificationDate         = 2017-08-08 08:51:42 +0000
kMDItemContentType                     = "com.sun.java-source"
kMDItemContentTypeTree                 = (
    "com.sun.java-source",
    "public.source-code",
    "public.data",
    "public.plain-text",
    "public.item",
    "public.content",
    "public.text",
    "com.sun.java-source"
)
kMDItemDateAdded                       = 2018-02-04 06:16:53 +0000
kMDItemDateAdded_Ranking               = 2018-02-04 00:00:00 +0000
kMDItemDisplayName                     = "A.java"
kMDItemFSContentChangeDate             = 2017-08-08 08:51:42 +0000
kMDItemFSCreationDate                  = 2017-08-08 08:51:42 +0000
kMDItemFSCreatorCode                   = ""
kMDItemFSFinderFlags                   = 0
kMDItemFSHasCustomIcon                 = (null)
kMDItemFSInvisible                     = 0
kMDItemFSIsExtensionHidden             = 0
kMDItemFSIsStationery                  = (null)
kMDItemFSLabel                         = 0
kMDItemFSName                          = "A.java"
kMDItemFSNodeCount                     = (null)
kMDItemFSOwnerGroupID                  = 20
kMDItemFSOwnerUserID                   = 501
kMDItemFSSize                          = 442
kMDItemFSTypeCode                      = ""
kMDItemInterestingDate_Ranking         = 2017-08-08 00:00:00 +0000
kMDItemInterestingDate_RankingRepaired = 1
kMDItemKind                            = "Java Source"
kMDItemLogicalSize                     = 442
kMDItemPhysicalSize                    = 4096

Вот вывод mdls для файла в той же папке, что и предыдущий файл, но вместо этого отображается "Source Code" :

kMDItemContentCreationDate         = 2018-04-02 09:09:37 +0000
kMDItemContentCreationDate_Ranking = 2018-04-02 00:00:00 +0000
kMDItemContentModificationDate     = 2018-04-02 09:09:37 +0000
kMDItemContentType                 = "com.sun.java-source"
kMDItemContentTypeTree             = (
    "com.sun.java-source",
    "public.source-code",
    "public.data",
    "public.plain-text",
    "public.item",
    "public.content",
    "public.text",
    "com.sun.java-source"
)
kMDItemDateAdded                   = 2018-04-02 09:09:37 +0000
kMDItemDateAdded_Ranking           = 2018-04-02 00:00:00 +0000
kMDItemDisplayName                 = "B.java"
kMDItemFSContentChangeDate         = 2018-04-02 09:09:37 +0000
kMDItemFSCreationDate              = 2018-04-02 09:09:37 +0000
kMDItemFSCreatorCode               = ""
kMDItemFSFinderFlags               = 0
kMDItemFSHasCustomIcon             = (null)
kMDItemFSInvisible                 = 0
kMDItemFSIsExtensionHidden         = 0
kMDItemFSIsStationery              = (null)
kMDItemFSLabel                     = 0
kMDItemFSName                      = "B.java"
kMDItemFSNodeCount                 = (null)
kMDItemFSOwnerGroupID              = 20
kMDItemFSOwnerUserID               = 501
kMDItemFSSize                      = 5893
kMDItemFSTypeCode                  = ""
kMDItemInterestingDate_Ranking     = 2018-04-02 00:00:00 +0000
kMDItemKind                        = "Source Code"
kMDItemLogicalSize                 = 5893
kMDItemPhysicalSize                = 8192

0