• 締切済み

元拡張子の取得

元の拡張子が*.txtだったものを*.xlsなどに変えてしまった時に元の拡張子を取得することは可能でしょうか? 下のものを使ってできるかと思ったのですが無理でしたので、教えていただけないでしょうか。 SPDocumentConverter http://msdn.microsoft.com/ja-jp/library/microsoft.sharepoint.administration.spdocumentconverter.convertfrom.aspx 出来ない場合、フォルダなどに入れたとき、ファイルを読み込み正常に開かれない(拡張子を変えているため)場合 そのファイルをはじくようにしたいのですがどうすればよいでしょうか? 長くなって申し訳ありませんがよろしくお願いします。 VBは2005を使っています。

みんなの回答

  • KDASH-XP
  • ベストアンサー率46% (63/136)
回答No.1

基本的にプログラムでファイルを処理する場合、拡張子でファイルの種類を判断するのではなく、ファイルの先頭にあるヘッダなどを読み込んで種類を判断します。 とは言っても、なかなかExcelなどのファイル形式のヘッダ仕様なんか把握できるものではないかと思います。 そこで .NETの機能でサポートされているファイル形式の読み込みとかをしているのであれば、とりあえず読み込んでしまって、エラーが発生した場合だけ、そのエラーを調べるといった方法が一般的だと思います。 (詳細は忘れましたが) 画像処理系のライブラリで、拡張子を.jpgとかに変換した(内容がテキスト)ファイルを開こうとすると、こういった種類のエラーが出ます。 エラー情報の中にファイル形式が不正である旨が含まれていると思うので、そのエラーが発生したら、そのファイルはスキップする...ような処理になるかなと思います。 話が前後しますが、ファイルの一部だけ読み出しして、ファイルの正常性を判断するのは結構難しいかなと思います。 Windowsのフリーソフトなんかで、ファイルの拡張子を判断するようなプログラムがありますが、あれをDLLとしてプログラムから呼び出しとかできれば簡単に判断できそうですが...。

saido7
質問者

お礼

返答のほうが遅れて申し訳ありません。 さっそく試してみたのですがうまくいかないようなので、またいろいろ試してみたいと思います。 一応、思い出されたでよいのでエラーを調べる方法などが分かれば教えていただければありがたいです。 長くなりましたが、ありがとうございました。

関連するQ&A

  • 同じ名前で拡張子が違うファイル

    ExcelのVBAで、同じ名前で拡張子が違うファイルを操作するマクロを使用しています。(○○.txtと○○.xlsなど) フォルダオプションで「拡張子を表示しない」設定になっていた場合におこりうる不具合を教えてください。 私は以下のような不具合に遭遇しました。 ○○.txtを読み込み○○.xlsにコピペするマクロ  ・まず○○.xlsを開く。  ・次に○○.txtを開き中身をコピー。  ・貼り付け先の○○.xlsをアクティブにしようとするが、   ○○.txtがアクティブになったまま。 そもそも同じ名前なのがいけないとは思いますが、ファイル名はそのままでエラーを回避できる方法があれば、それも知りたいです。 よろしくお願いします。

  • フォルダ内の特定の拡張子を消したいとき

    今、visual basic 2005の勉強をしているものですが、特定のフォルダの中の特定の拡張子 .txt .xlsなどを削除したいときはどのようにすればよいでしょうか? また、フォルダの中にフォルダがある場合、その中の拡張子も削除したいのですが可能でしょうか?

  • Office2007の拡張子

    Dosでバッチを作っています。 あるフォルダ内に複数のExcelファイルがあり、それを別のフォルダにコピーしようとしています。 ただ、このコピー元のフォルダにはExcel2007のファイルも含まれている為、拡張子がxlsとxlsxの2種類が存在します。 コピーしたいのは、xlsのファイルだけにしたいのですが、どのようにすればいいのでしょうか? copy コピー元のパス\*.xls コピー先のパス /Y ↑ これだとxlsとxlsxの両方がコピーされてしまう。

  • HPの拡張子が「.aspx」

    マイクロソフトのHPは拡張子が「.aspx」になっていますが なぜ「.html」ではないのですか? http://www.microsoft.com/ja/jp/default.aspx

    • ベストアンサー
    • HTML
  • ファイルの拡張子

    PC素人です。 転職サイトに職務経歴書をアップロードしたいのですが、 アップロードできるファイルの拡張子は『.doc.xls.pdf.txt』のみになっています。 経歴書は、すでにxlsxで作成済です。 どうすれば、アップロードできるでしょうか。 ワードにコピペしてもdocxになってしまうと思いますし、 また、pdfとtxtを作成したことがないので、方法がわかりません。 ファイル拡張子を変える(xlsからxlsへ)なんてことはできるのでしょうか? できないとしたら、pdfかtxtにコピペするのは簡単ですか? pdfはアドビですよね。txtはどこから作成できるんでしょうか? 素人のあまり変な文章ですみません。

  • 取得したファイル名から拡張子の削除について

    BATにおいて「C:\test」フォルダに格納されているファイルに対してファイル名を取得後、取得したファイル名から拡張子を削除したファイル名を変数にセットしたいと考えていますが、どのようなロジックにしたらいいかご教示頂けますようお願い致します。 実際のファイルの拡張子は削除せず、表示されたファイル名の拡張子を削除したファイル名を変数にセットしたいと考えています。 ------------------------------------------------------------------------------- set FOLDER=C:\test for /f "usebackq" %%i in (`dir %FOLDER% /B *.txt`) do ( echo %%i pause ) ------------------------------------------------------------------------------- -------------------------------------------------------------------------------- C:\testの中身 a.txt bb.txt ccc.txt dd.txt e.txt -------------------------------------------------------------------------------

  • 中身を空にした上、リネームしたファイルの復元方法

    ハードディスクの同一フォルダ内の多数のファイルを、誤って、中身を空にした上で、拡張子を txt に変更してしまいました。 変更は以下のような形です。 memo[01].doc (500バイト)  → memo[01].txt (0バイト) keisan[25].xls (100バイト)  → keisan[25].txt (0バイト) これらのファイルを復元する方法がありますか。 元のファイルはほとんどが、 拡張子 doc のファイルなので、場合によっては、 xls のファイルは諦めることも可能です。何とか、doc のファイルだけでも復元したいのですが、復元方法があれば、ぜひ教えてください。    

  • 開くファイルのフォルダと拡張子txtを指定する

    excel2021で最初に開くフォルダの指定とそこで開く拡張子をtxtに指定することはできますか。 最初に開くフォルダは、何かファイルを開いた後、ファイルーオプションー詳細設定の起動時にすべてのファイルを開くフォルダでパスを指定すれば、 そのフォルダが開きますが、そこに無いファイルの場合はさらに参照としたとき、エクスプローラ風のツリーで、目的のフォルダを開きますが、その場合はexcelファイルのみ表示されるので、さらに開く拡張子TXTなどを指定せねばなりません。 この操作を繰り返しやるときは面倒です。 それで、最初に開くフォルダと拡張子txtを共に指定したいのです。この場合、当然ながらexcelファイルを開く場合は面倒になることは許容します。

  • WMIでファイル/フォルダの監査の取得について・・

    Windows2000 Serverで ファイルまたはフォルダの監査の設定状況を 取得したいのですが、WMIでどう書けばよいのか 困っております。 http://support.microsoft.com/default.aspx?scid=kb;ja;300549 関数はあるようなのですが、 この関数をどう利用すれば良いのかわからず 大変困っております。 http://207.46.248.109/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_securitysettingauditing.asp どなたか・・・ご教授下さい。 よろしくお願い致します。

  • VBScriptで、フォルダ内の拡張子によって処理を分けたい。

    VBScriptで、フォルダ内の拡張子によって処理を分けたい。 C:\WORK\*.xls C:\WORKの配下に「xls」ファイルが存在していた場合、Aの処理を行い、 存在していなかった場合、Bの処理を行うというスクリプトを作成したいと思っております。 しかし・・・ --------------------------------------------------------- Set objFSC = CreateObject("Scripting.FileSystemObject") If objFSC.FileExists("C:\WORK\*.*") = "xls" Then 【処理A(xlsファイルの削除/別のフォルダからxlsファイルのコピー】 Else 【処理B(別のフォルダからxlsファイルのコピー)】 End If --------------------------------------------------------- とした場合、FileExistsメソッドがワイルドカードに対応していないため 処理が行われません。 フォルダの中には"xls"以外の拡張子のものも存在しており、フォルダごと削除する 訳にもいきません。また、個別に名前を指定することも出来ない状況です。 どなたか、お力をお貸しいただけないでしょうか。 以上 よろしくお願いいたします。

専門家に質問してみよう