Skip to content

ファイル末尾に空白文字があるとファイル参照ができない?

2013年12月30日

NTFS+Windowsでの環境で、拡張子含むファイル名が空白文字で終わっている場合、
Windows上からファイルを開く・削除することができない。
プロパティ上ではファイルサイズが記述されているのにもかかわらずである。

似た症状としては
http://bbs.hotfix.jp/ShowPost.aspx?PostID=2285
にあるような、「末尾にピリオドがある場合」があるようである。

上記リンクでも出現したKB320081によると、

“ファイル名に無効な名前が含まれる場合 (ファイル名の末尾に空白やピリオドが含まれる場合やファイル名が空白のみで構成されている場合) には、ファイルを削除することができない場合があります。”

Win32構文とAPIの問題? よくわからん。

@IT 不正な名前のファイルを削除する によれば、
http://www.atmarkit.co.jp/fwin2k/win2ktips/526badfile/badfile.html

del “\\?\d:\work\lpt1”

を実行すればよいとのこと。
cygwin環境であれば、mv(1)を利用すればよい。また、cygwin標準ではないが、rename(1)を利用してもよい。

原因はおそらく、Twitterで画像を保存する際末尾に付加される、” large.jpg”(先頭に半角の空白文字0x20)を削除しようとして、

$ rename “large.jpg” “” *

と、末尾に空白文字が残るようなrename(1)の引数指定をしたことに起因するんだろうなと。

広告

From → Windows

コメントする

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。