人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

光学メディアにファイルを焼くにはファイル名が半角で64文字以下でなくてはならないと思います。
ただ、必要は無い物なのですが、上記のファイル名のものが大量に存在します。
これらを判断し、自動で削除してくれるようなツールはありませんか?


●質問者: makocan
●カテゴリ:コンピュータ インターネット
✍キーワード:ファイル メディア 光学 存在 自動
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● seble
●35ポイント

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

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

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

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


2 ● pahoo
●35ポイント

光学メディアにファイルを焼くにはファイル名が半角で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
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ