• 締切済み

ファイル情報を取得するには

ファイルを右クリック>プロパティで出てくる情報を扱いたいのですが、 全般タブの情報でC#のFileInfoの情報ばかりでC++の書き方がわかりません。 これに代わるものは何があるんでしょうか? 概要タブの情報はIPropertyStorageを使う時、取得したいファイルはどこで指定すればいいんでしょうか? 情報を取り出す部分しかわかりません。 教えてくださいお願いします。 CoInitialize(NULL); CComPtr<IPropertyStorage> PS_d; PS_d.CoCreateInstance(IID_IPropertyStorage); const PROPSPEC ps[10]; PROPVARIANT pv[10]; PS_d->ReadMultiple(10, ps, pv);

  • _jast
  • お礼率40% (15/37)

みんなの回答

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.1

関連するQ&A

  • silverlightでファイル情報を取得する

    silverlightでexif情報を取得したいと考えております。 ExifLibライブラリを用いてファイルからexif情報を取得するところまではできておりますが、 Fileinfoへのファイルの指定がうまく行きません OpenFileDialogを用いてならFileinfoの指定はできましたが、プロジェクト内の画像を直接Fileinfoへ指定はできないのでしょうか? -------------------- FileInfo ff = new FileInfo(@"c:\(中略)\(プロジェクト)\画像1.jpg");  //この時点でエラーが発生する var info = ExifLib.ExifReader.ReadJpeg(ff); -------------------- エラー内容 -------------------- コード:4004 カテゴリ:ManagedRuntimeError メッセージ:System.Security.SecurityException:ファイル操作は許可されていません。パス'C:\(中略)\(プロジェクト)\画像1.jpg --------------------

  • directshow を使用して、mpegファイルを再生するには

    お世話になっております。 directshowを使用して、mpegファイルを再生させようとおもったのです、以下のエラーが発生して、コンパイル出来ません。 c:\Documents and Settings\User\My Documents\Visual Studio Projects\test1\test1Class.cpp(33): fatal error C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。 何が原因かさっぱり分かりません。 何方かご教授お願い致します。 開発環境は、visualstudio2003(言語C++.net) です。 ソースも載せておきます。よろしくお願い致します。 #include <dshow.h> void main(void) { IGraphBuilder *pGraph; IMediaControl *pMediaControl; IMediaEvent *pEvent; CoInitialize(NULL); // フィルタグラフマネージャを作成し、インターフェイスをクエリする。 CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pGraph); pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl); pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent); // グラフを作成。重要: 使用システムのファイル文字列に変更すること。 pGraph->RenderFile(L"C:\\Hello_World.avi", NULL); // グラフの実行。 pMediaControl->Run(); // 終了を待つ。 long evCode; pEvent->WaitForCompletion(INFINITE, &evCode); // クリーン アップ。 pMediaControl->Release(); pEvent->Release(); pGraph->Release(); CoUninitialize(); }

  • 画像ファイルが開けなくなりました!困っています!!

    困っております!どなたか詳しい方助けていただけないでしょうか! 先ほど、Cドライブ内にある「My picture」のデジカメ画像(170MB分)を Dドライブに移動させている最中にエラー(エラーの内容は覚えていません。。)が出たので エラーのコマンドに対しOKボタンを押したところ Cドライブに50MBを残し、(Dドライブに移動させた)120MBの画像が消えてしまいました! 「システムの復元」で一昨日のポイントまで戻してみると 消えた120MBの画像フォルダがDドライブに復元されたのですが、 ファイルを開くことができません。 ファイルを開こうとすると、エラーメッセージで「作業中であった場合、その情報は失われた可能性があります」と出てきます。 プロパティを確認すると、全般タブでは画像のサイズ等表示されていますが 概要タブには「選択されたソースの概要のプロパティは利用できません」 とのみ表示されています。 このような状態ですが、ファイルの修復は可能でしょうか。。 画像修復ソフト等で解決できる問題なのでしょうか。。 説明が上手にできず申し訳ございませんが、ご回答いただけますと助かります! よろしくお願いいたします!

  • Direct Show(x64)でのエラー

    お世話になります。 現在x64版のDirect Showを利用して、aviファイルから任意のフレーム画像を取得する プログラムを作成しております。 Direct Showは今まで使ったことが無かったのですが、ネットにあるサンプルなどを 参考に手探りで作業を進めております。最終的にはx64版を作る必要があるのですが、 メインで作業しているPCが32bit環境であるため、とりあえずx86版で作業を進め、 なんとか期待する動作をするものが出来ました。 最終的に処理する動画ファイルは1440x810のものと、3840x2160の2つがあり、 x86版ではどちらも期待する動作をしてくれるのですが、x64にてコンパイルし64bit環境で 動作させると1440x810の方は問題ないのですが、3840x2160の方はうまく動作しません。 なお、プログラムは以下のような流れでDirectShowを利用しております。 CoInitialize CoCreateInstance( CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, &pIGB); pIGB->QueryInterface( IID_IMediaControl, &pIMC ); pIGB->QueryInterface( IID_IID_IMediaSeeking, &pIMS ); CoCreateInstance( CLSID_SampleGrabber, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, &pIBF ); pIBF->QueryInterface( IID_ISampleGrabber, &pISG ); pIGB->AddFilter( pIBF, NULL ); pISG->SetMediaType(&stMT); // stMTはMEDIATYPE_Video,MEDIASUBTYPE_RGB24,FORMAT_VideoInfoを設定 pIGB->RenderFile( ファイル名, NULL ); : 調べてみると、RenderFileのところでx64の場合はVFW_E_NO_TRANSPORTが帰ってきているようです。なお、その64bit環境でx86コンパイルしたものを動かすと問題なく動作します。 なお、もともとDirect X SDK 9.0を使っていましたが、念のため最新版のものをダウンロードして 試してみましたが、症状は変わりませんでした。また、Videoドライバも変えてみましたが、同様に 変化なしです。 どんな原因が考えられるか、どなたかご助言頂ければ助かります。 なお、開発環境・動作環境は以下の通りです。 Windows 7 Pro 64bit版 VisualStudio 2010 Pro Direct X SDK 9.0 or Direct X Jun_2010 C++ (純粋なネィティブプログラム)

  • PDFファイルのプロパティにて、「概要」タブの出し方

    初めまして。貯まってしまったPDFファイルの整理をしたいので、保存 先のDVD-RAM(CDドライブE)のファイル内で、カテゴリやコメント欄を 作ろうと思ってます。  その為に、PDFファイルのプロパティを開いても、「全般」「PDF」の タブのみで「概要」タブが出てきません。 ちなみに、同じPDFファイルでもローカルディスクDでは「概要」も出て きて、問題なく処理出来ました。 どのファイルでも、ローカルディス クDだと「概要」は出て、RAMだと出て来ないようです。 お解かりになる方がいらっしゃったら、ご教授頂けませんでしょうか。 宜しくお願いします。 PCはWINDOWS XPを、Adobe Readerは7.0を使用してます。

  • エクセルVBAで、ファイルの情報の「作成日時」取得

    エクセル2000です。 メニューからファイル、プロパティでダイアログを呼び出すと、タブが「ファイルの情報」、「ファイルの概要」、「詳細情報」、「ファイル構成」、「ユーザー設定」と並んでいます。 そのうちの「ファイルの情報」タブと、「詳細情報」タブの両方に「作成日時」と「更新日時」があります。 同じ「作成日時」がなぜ二つあるのか、どう違うのが、試してみると更新日時はどちらも同じですが、作成日時が「詳細情報」はそのエクセルを初めて作成した日時、「ファイルの情報」は、そのエクセルに名前を付けて保存した日時のようです。 上記の理解で合っていますか? 次にそのエクセルBOOKに記述したVBAで作成日時を取得しようとした場合、 ActiveWorkbook.BuiltinDocumentProperties(11).Value で取得できる作成日時は、「詳細情報」にあるほうの日時のようですが、「ファイルの情報」にある作成日時(名前を付けて保存した日時)をVBAで取得するにはどうしたらよいのでしょうか? なにとぞよろしくお願い申し上げます。

  • ファイルについて

    aviやwmvなんかのファイルのプロパティを開くと全般と概要タブがありますよねその概要タブを開くとプロパティと値の項目が表示されますよね、それがファイルによってはこの概要タブを開くと[選択されたソースの概要のプロパティは利用できません]と表示されるものがありますでも再生は出来ますただこのてのファイルにメディアプレーヤ系を選択すると[指定されたモジュールが見つかりません]と表示され再生出来ません。それが今までは再生出来たのですが何が原因なのでしょうか?今はGOMプレーヤーで再生してるのですがどうも解せなくて、何方か原因究明してくださる方ご教授願います。メディアプレーヤ10、OSはXP,SP1訳あってSP2にUPして無くて、よってメディアプレーヤ11にVerUP出来ない状態です。

  • ファイル概要情報の更新

    csvファイルのプロパティ-概要タブ-説明(タイトル等)の情報を更新する方法で困っています。 officeファイル(OLEドキュメント)の場合、DSOFileを使用して更新することが出来るのですが、officeファイル以外の場合どのような方法があるのでしょうか。 宜しくお願い致します。

  • directshowでAVIファイルが再生が出来ません…

    Directshowを用いて動画を再生しようと試みています。 Direct sdkとplarformの両方を入れて、インクルードパスとライブラリパスを通しました。 ビルドしてもエラーは無いので某所のシンプルなソースでデバッグ無しで開始をクリック。 すると、再生が終わらないようにメッセージBlock Executionが表示されるものの肝心の動画が映りません。 プログラムはしっかりと動いているはずですが、、 動画aviはMSMPEG4V2です。Directshowのコーデックで動くとのことです。何がおかしいのか、さっぱりです。 環境はwindowsXP visual studio2005 DirectxSDK2008 microsoft platform(しっかりDirectshowフォルダは存在します) ここまで来たなら設定ミスは無いとは思いますが、(設定ミスがあれば、開けない等エラーが出ると思いますので) どうかお願い致します。 サンプルソース ↓ #include <stdio.h> #include <dshow.h> #define FILENAME L"C:\\Documents and Settings\\057104\\My Documents\\homerun2.avi" int main() { IGraphBuilder *pGraphBuilder; IMediaControl *pMediaControl; // COMを初期化 CoInitialize(NULL); // FilterGraphを生成 CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder, (LPVOID *)&pGraphBuilder); // MediaControlインターフェース取得 pGraphBuilder->QueryInterface(IID_IMediaControl, (LPVOID *)&pMediaControl); // Graphを生成 pMediaControl->RenderFile(FILENAME); // 再生開始 pMediaControl->Run(); // 再生中にプログラムが終わってしまわないように MessageBox(NULL, "Block Execution", "Block", MB_OK); // 資源を解放 pMediaControl->Release(); pGraphBuilder->Release(); // COM終了 CoUninitialize(); return 0; }

  • ディレクトリ内のファイル名取得

    maruchan と言うものです。 よろしくお願いします。 さっそく質問 環境 cygwin gcc version 3.3.1 やりたい処理は、ディレクトリ内の全てのファイル名を取得したいと思っています。 内容を見ると単純ですが、そのファイルの数が約10万ファイルぐらいありまして・・・ファイル名を取得するだけで結構な時間が掛かってしまいます。 そこで 私が質問したいのは 高速にファイル名を取得する方法はないのか知りたいです。 私が書いたサンプルです。 /*******************/ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <dirent.h> int fileSelector (const struct dirent *entry); int main(void) { int i = 0; int dirCnt = 0; struct dirent **dp = NULL; char dirPath[256]; strcpy(dirPath, "./file/"); dirCnt = scandir(dirPath, &dp, fileSelector, alphasort); for(i=0; i < dirCnt; i++) { /* 本来はここでファイル名を何かに登録する */ dp[i]->d_name; } free(dp); return 0; } int fileSelector (const struct dirent *entry) { if (strcmp (entry->d_name, ".") == 0 || strcmp (entry->d_name, "..") == 0) { return 0; } return 1; } /*******************/

専門家に質問してみよう