フォルダサイズの大きい順に並べ替えについて

【環境】Windows10 Enterprise 2016 LTSB 【状況】 Windows10には、フォルダのサイズ...

notnot さんからの 回答

  • 2019-02-09 23:31:35
  • 回答No.1
notnot

ベストアンサー率 48% (4384/9005)

テキストファイルになるようなので、Excelにでも貼り付ければ良いのではないでしょうか。
お礼コメント
Engineer480907

お礼率 72% (566/777)

ありがとうございます。

以下のプログラムに「フォルダサイズ情報.txt」があることを見落としていました。ファイルには書き出されず、画面には表示されるので、画面表示だけと思っていました。

Cドライブ直下で行うと「行:21 文字:1 エラー:書き込みできません。コード:800A0046」になりましたので、何か要因がありそうなので確認してみることにします。
「Set writeFile = objFso.OpenTextFile("フォルダサイズ情報.txt", 2, True)」の箇所が要因のようです。


'変数の宣言を強制
Option Explicit

'変数objFsoを宣言
Dim objFso

'objFsoにScripting.FileSystemObjectのオブジェクトをセット
Set objFso = WScript.CreateObject("Scripting.FileSystemObject")

'変数objSubFolderを宣言
Dim objSubFolder

'objFolderにフォルダをセット
Set objSubFolder = objFso.GetFolder(".\")


'変数writeFileを宣言
Dim writeFile

'書き込み用ファイル
Set writeFile = objFso.OpenTextFile("フォルダサイズ情報.txt", 2, True)

'変数countを宣言と初期化
Dim count
'フォルダの深さカウント用
count = 0

'ShowFolderSize()メソッドを実行
Call ShowFolderSize(objSubFolder)



'ShowFolderSize()メソッド
Private Sub ShowFolderSize(ByRef objFolder)

'" -"をフォルダの深さ分だけ出力する
Dim n
n = 0
Do While n < count
writeFile.Write " -"
n = n + 1
Loop

'整数型に変換
Dim ISize
ISize = CLng(objFolder.Size) * 0.001
writeFile.WriteLine objFolder.Name & ": " & FormatNumber(ISize) & "K"

'自身のクラスを再起呼び出し
For Each objSubFolder In objSubFolder.subFolders

'フォルダの深さカウント用+1
count = count + 1

Call ShowFolderSize(objSubFolder)

'フォルダの深さカウント用-1
count = count - 1

Next

End Sub
投稿日時 - 2019-02-10 14:34:32
この回答にこう思った!同じようなことあった!感想や体験を書こう!
この回答にはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
ページ先頭へ