巨大なフォルダー内で、選択した月のファイルのみを検索するにはどうすればよいですか?

巨大なフォルダー内で、選択した月のファイルのみを検索するにはどうすればよいですか?

30 ギガバイトのメディア ファイルが入ったフォルダーがあります。それらを「日付」で並べ替えて、「年_月」の新しいフォルダーに分割するのに何時間もかかります。大量のファイル リストから、選択した月だけを検索/フィルターするにはどうすればよいでしょうか。

回答者への返信

ライブラリを追加するという回答に対する返信:

からファイルエクスプローラーでライブラリを表示する:

ファイル エクスプローラーでライブラリを表示するには、[表示] タブを選択し、[ナビゲーション ウィンドウ] > [ライブラリの表示] を選択します。

図書館で日別に整理すると次のようになります。

ここに画像の説明を入力してください

ライブラリの「日付」列には同じ日付 05.08.2023 のみが表示されます。

ここに画像の説明を入力してください

しかし、これはすでにバックアップ フォルダーにある同じ間違った日付でもあることがわかったので、ライブラリはデータにあるものよりも優れているはずがありません。

ここに画像の説明を入力してください

Ask Different Stack Exchangeから古いスクリーンショットを持っているにもかかわらずギガバイト単位の画像ファイルやビデオファイルを iPhone 7 から Windows PC に移動するには、なぜ何度もエラーが発生しながらコピーを再試行する必要があるのでしょうか?(それが私がこの質問をここでするきっかけとなったのです)

HEIC データに他の日付が含まれていることがわかります。

ここに画像の説明を入力してください

しかし、今同じデータを確認すると、HEIC画像がファイルリストに表示されなくなっていることがわかります。おそらく、正しい月に移動したためです。とにかく、05.08.2023だけが含まれている場合、この日付のみがライブラリに表示されるため、HEICファイルが見つからない場合は私の責任です。

Windows に表示される iPhone フォルダの「Datum」列には実際の日付が含まれていますが、同じファイルをもう一度見てみましょう。

ここに画像の説明を入力してください

これは、バックアップによって日付が上書きされ、「月別に並べ替え」を選択してインデックスによる並べ替えをすばやく行うライブラリ トリックが機能することを意味します。これが私がこれを受け入れる理由です。

答え1

フォルダーがインデックス化されている場合は、フォルダーから新しいライブラリを作成できます。ライブラリは無視されることが多いですが、Arrange by >バックグラウンド コンテキスト メニューから機能が提供され、必要な検索機能がすべて提供されることがよくあります。

ライブラリの種類やテンプレートによって、提供されるArrange by >オプションは異なります。ファイルがメディアであっても、このスクリーンショットに示すように、各月/年グループに「スタック」(仮想フォルダー) をPictures提供して表示するテンプレートを必要に応じて使用してくださいMonth

ここに画像の説明を入力してください

次に、ファイルをコピー/移動するには、スタックをダブルクリックして開き、ctrl+Aですべて選択し、必要に応じてコピー/移動します。


編集:Arrange by >オプションはライブラリの種類によって異なりますが、これはフォルダーの種類に似ています。選択肢が表示されない場合は、次の手順に従ってください。

  • Month
  • Day
  • Rating
  • Tag ライブラリは画像用に最適化されていません。これはライブラリのPropertiesダイアログで変更できます。

ここに画像の説明を入力してください

これは、おそらく英語版のコラムDatumに相当するものなので、Date冒険者これはファイルシステムのプロパティでもないので、かなりユニークなプロパティです。またはExifメタデータはファイルに保存されますが、ファイルの種類やDate Takenファイル内にメタデータが存在するかどうかによって決まる動的なプロパティです。私の回答を参照してください。ここ詳細については、 を参照してください。その回答にリンクされているドキュメントに示されているように、完全なプロパティ名は でありSystem.ItemDate、これは、月ごとにスタックするために最適化されたライブラリが使用するプロパティと同じですPictues

ここに画像の説明を入力してください



編集: トラブルシューティング


このコードをコピーして貼り付け、パワーシェル戻るためのウィンドウ正規名1つまたは複数の開いているウィンドウで並べ替え列として選択されたプロパティの冒険者ウィンドウズ:

@((New-Object -Com shell.application).Windows()).ForEach{ Echo ('{0}Window Title   :{1,30}{0}Sort Column(s) :{2,30}{0}' -f "`n`t", $_.LocationName, $_.Document.SortColumns)}

出力:

PS C:\> @((New-Object -Com shell.application).Windows()).ForEach{ Echo ('{0}Window Title   :{1,30}{0}Sort Column(s) :{2,30}{0}' -f "`n`t", $_.LocationName, $_.Document.SortColumns)}

        Window Title   :                      Pictures
        Sort Column(s) :        prop:-System.ItemDate;

PS C:\>

画像フォルダ内のコードを実行し、ライブラリに移動してからもう一度実行します。プロパティは同じですか?

答え2

[フィールド:月年] パターンで検索 (小規模なサンプルのみ有効)

フィルタリングするファイルがあるフォルダを開きます。右上の検索ボックスに、次のパターンでシステム言語を入力します。

[column name]:[month in letters] [year]

ドイツ語の例:

  • 2023年1月 / 2023年1月
  • 2023年2月 / 2023年2月
  • 2023年3月
  • 2023年4月 / 2023年4月
  • ...

メーカー:

ここに画像の説明を入力してください

検索メニューでは、今月、先月など、さらに多くのパターンを見つけることができます。それらをクリックすると、検索ボックスにコードも表示され、さらに調整できるようになります。

ここに画像の説明を入力してください

そうすれば、先月の「変更日」である「Änderungsdatum: letzten Monat」(過去 1 か月ではなく、最後の暦月を意味します)をクリックできるようになります。

ここに画像の説明を入力してください

また、「変更日」以外のフィールド/列に必要なので、「datum」列に変更できます。

ここに画像の説明を入力してください

これは、大量のファイルリストでは機能しないようです

不思議なことに、これはすべてのファイルで機能するわけではないようです。「2023 年 8 月」のフィルターと、その出力を「202308」フォルダーに移動すると、次のようになります。

ここに画像の説明を入力してください

このスクリーンショットのいくつかのサンプル画像からわかるように、私は他の月の画像も見つけました。そして、これらは全てHEIC といくつかの JPG 画像 (12000 件中 11500 件) です。この「202308」フォルダー内で再度フィルターすると、「2023 年 8 月」の画像のみが表示されます。つまり、フィルターは検索出力では何らかの形で機能するため、その巨大でおそらく完全に読み込まれていない検索出力を新しいフォルダーに移動するときに機能しない可能性があります。
次に、 を押さずにCtrl+A検索出力の最初から最後までをマークして、それから移動するときに「datum:aug 2023」ファイルのみをキャッチできるのではないかと考えました。しかし、テストでは、検索出力のフィルターされたファイルのみをマークすると、フォルダー全体のファイル数と同じ数のファイルがマークされたため、マークされているように見えます。全てそのフォルダ内のファイルの検索結果がしなければならないファイル数が少なくなります (すべてのファイルが「2023 年 8 月」のものではなかったことは確実にわかっているため)。つまり、残念ながら、検索フィルターを使用して、選択した月を他の月と分割することはできません。したがって、この回答は大きなフォルダーには不十分で、小さなフォルダーにのみ機能します。
他の月をフィルターして、独自の year_month フォルダーに移動しましたが、すべての HEIC ファイルが「202308」フォルダーにあったため、HEIC 画像は見つかりませんでした。フィルターによって見つかったのは、いくつかの MOV ファイルと JPG ファイルだけです。

ここに画像の説明を入力してください

それでも、見つかったファイルを少なくとも移動して、大きなフォルダのサイズを少しでも小さくしました。今度は、残りの 11500 個のファイルを「datum」で並べ替える必要があり、これには何時間もかかります。奇妙なバグです。

したがって、この膨大なファイル リストから数か月分の HEIC やその他の画像を除外する方法はまだ見つかっていません。1 つのフォルダーには、約 12,000 個のファイルのうち約 11,500 個の HEIC/PNG/JPG 画像が残っています。

ファイル名で分割

私の iPhone の月間フォルダがすべて結合されたフォルダがあり、名前が重複していたため、最終的に「(2)」を含む各ファイルを新しいフォルダに移動し、他のマーカーも同様に操作して、名前で分割を開始し、小さいサンプル (当時は 1300 ファイルのみ) を日付列で並べ替えました。

ここに画像の説明を入力してください

これはうまくいきました。並べ替えに時間がかからず、これらのファイルを月ごとのサブフォルダーに分割できるようになりました。

1000~2000個のファイルの小さなサンプルを別のフォルダに移動する

しかし、これに到達するための名前のようなものがない場合、これに対処する唯一の方法は、数千以上のファイルのランダムなサンプルを作成し、日付で並べ替え、フォルダーに分割し、次のサンプルに進むことです。これが私の最終的な結果です。ファイルを月ごとのフォルダーに何十回も移動する必要があったとしても、非常に迅速に実行できたので、おそらくこれをすでに開始しておくべきでしょう。少なくとも、コンピューターはそれを処理できました。

プログラムする

私は Python でファイルを何度も扱ったことがありますが、pathlib ライブラリを使用すると、手動で何もしなくても「datum」を読み取って year_month フォルダーに移動するのは簡単です。時間はかかりませんでしたが、何百回もファイルを適切な月別フォルダーに移動するよりも良い方法のはずです。

関連情報