夕暮ログ

C#やJavascript、最近はAndroidなんかも好きなtinqのブログ。「夕暮れログ」

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

プログラムで自動処理をする時にファイル名に使えない文字ではまった

現在、とある処理を自動化しようとrubyを組んでいます。
その最中にファイルをダウンロードしてきて保存する箇所があるのですが、なぜかうまく保存されない。

スペースやファイル名が長すぎるのが原因かと思っていろいろやってみましたが、よくよく見たらファイル名に使えない文字のおかげでした。

そういえば、*とか:とか使えないことをすっかり忘れていました・・・。
普通ならファイルを作成できなくて例外を吐くはずなのですが、その時含まれていた文字が「:」だったので例外が出ませんでした。
多分、代替データストリームあたりに必死に書き込んでいたのではないかと思います。
(そのあと代替データストリームを開こうとしましたが開けず。結局どこに書き込んでいたんだろう)

使えない文字はこのページの下のほうにあるように(FATではなくNTFSです)
FAT、HPFS、NTFS ファイル システムについて - Microsoft

? " / \ < > * | :
です。
ということで、これが含まれていたらはじくなり置き換えるなりの処理が必要です。

雑ですが、こんな感じでしょうか。
file = text.gsub!(/[?"\\\<>*|]/,"_")


意外と気が使いないものなので注意しましょう・・・

関連記事

コメント

ここをクリックしてコメントを投稿

非公開コメント

トラックバック

http://tinqwill.blog59.fc2.com/tb.php/89-977c2f00

« next  ホーム  prev »

プロフィール

tinq tinq(もしくはTinqWill)

Sky  For   Every 改装予定

プログラミングお勉強中の高校生。月一くらいは更新したい

最新記事

カテゴリ

月別アーカイブ

検索フォーム

最新コメント

リンク

最新トラックバック

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。