光学メディアにファイルを焼くにはファイル名が半角で64文字以下でなくてはならないと思います。

ただ、必要は無い物なのですが、上記のファイル名のものが大量に存在します。
これらを判断し、自動で削除してくれるようなツールはありませんか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/11/09 04:55:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:seble No.1

回答回数4796ベストアンサー獲得回数629

ポイント35pt

http://www.vector.co.jp/vpack/filearea/win/util/file/name/

この手のリネームソフトは沢山ありますのでお好みでどうぞ。

http://www.55555.to/what/gm.htm

このソフトは文字数で検索はできませんが、、、

id:pahoo No.2

回答回数5960ベストアンサー獲得回数633

ポイント35pt

光学メディアにファイルを焼くにはファイル名が半角で64文字以下でなくてはならない

これは Joliet 形式(Windows系)ですね。

他に下記のようなファイル形式があり、種類によって文字数が違います。

ファイルシステム 対応OS ファイル名文字数制限
ISO 9660 Level 1 MS-DOS
Windows95,98,NT
MacOS
UNIX 8.3形式
(ファイル名 8文字以下、拡張子 3文字以下)
ISO9660 Level 2,3 Windows95,98,NT
MacOS
UNIX
31文字
Joliet Windows95,98,NT 64文字
Romeo Windows95,98,NT4.0 128文字

Windows環境で良ければ、下記のプログラムを "delete64.vbs" などという名前で保存、実行してみてください。

処理対象パスは変数 path に指定してください。

削除するファイル一覧がウィンドウに表示されます。


'VBSにはLenBが無いので
Function LenB(str)
    Dim i, c
    LenB = 0 
    If Trim(str) <> "" Then 
        For i = 1 To Len(str) 
            c = Mid(str, i, 1) 
            If (Asc(c) And &HFF00) <> 0 Then 
                LenB = LenB + 2
            Else 
                LenB = LenB + 1
            End If 
        Next 
    End If 
End Function 

'---メインプログラム
path = "D:\hogehoge\"   '処理対象パス
maxlen = 64             '長さ制限
outstr = ""
Dim fnames(100)

Set fs = CreateObject("Scripting.FileSystemObject")
Set fld = fs.GetFolder(path)

i = 0
For each fil In fld.Files
    If LenB(fil.Name) > maxlen Then
        outstr = outstr & "(" & Len(fil.Name) & ") " & fil.Name & chr(13)
        fnames(i) = fil.Path
        i = i + 1
     End If
Next

outstr = outstr & "を削除しますか?"
Set ws = CreateObject("WScript.Shell")
res = ws.Popup(outstr, 0, "確認メッセージ", vbYesNo)

'削除実行
If res = vbYes Then
    For each fn In fnames
        fs.DeleteFile(fn)
    Next
End If

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません