右クリックして、参照を選択して、COMタブを選択して、
Microsoft Shell Controls And Automationを追加する
/*
空のCLRプロジェクト
音楽ファイルの長さを取得
*/
using namespace System;//Console::ReadLine()で必要
using namespace Shell32;//ShellClass Folder FolderItem とかで必要
[STAThread]//Shell32::Folder ^f = shell->NameSpace(dir);で出る例外対策
void main(){
String ^dir = "G:\\sampleMovie"; // MP3ファイルのあるディレクトリ
String ^file = "Amanda.wma";
ShellClass ^shell = gcnew ShellClass();
Folder ^f = shell->NameSpace(dir);
FolderItem ^item = f->ParseName(file);
Console::WriteLine(f->GetDetailsOf(item, 27)); // 長さ win8の場合
Console::ReadLine();//入力待-ウインドウ維持
}
すべての属性取得
/*
空のCLRプロジェクト
ファイルの属性をすべて表示・取得
*/
#include <stdio.h> //NULL とかで必要
using namespace System;//Console::ReadLine()で必要
using namespace Shell32;//ShellClass Folder FolderItem とかで必要
[STAThread]//Shell32::Folder ^f = shell->NameSpace(dir);で出る例外対策
void main(){
String ^dir = "G:\\sampleMovie"; // MP3ファイルのあるディレクトリ
String ^file = "Amanda.wma";
ShellClass ^shell = gcnew ShellClass();
Folder ^f = shell->NameSpace(dir);
FolderItem ^item = f->ParseName(file);
int i = 0;
String^ name = f->GetDetailsOf(NULL, i);
while ( !String::IsNullOrEmpty( name ) )
{
// 属性名 表示
Console::WriteLine("{0,3} : {1}", i, name);
i++;
name = f->GetDetailsOf(NULL, i);
}
Console::ReadLine();//入力待-ウインドウ維持
}
値のある属性のみ取得
/*
空のCLRプロジェクト
ファイルの属性で値のあるものを表示・取得
*/
#include <stdio.h> //NULL とかで必要
using namespace System;//Console::ReadLine()で必要
using namespace Shell32;//ShellClass Folder FolderItem とかで必要
[STAThread]//Shell32::Folder ^f = shell->NameSpace(dir);で出る例外対策
void main(){
String ^dir = "G:\\sampleMovie"; // MP3ファイルのあるディレクトリ
String ^file = "Amanda.wma";
ShellClass ^shell = gcnew ShellClass();
Folder ^f = shell->NameSpace(dir);
FolderItem ^item = f->ParseName(file);
int i = 0;
String^ name = f->GetDetailsOf(NULL, i);
while ( !String::IsNullOrEmpty( name ) )
{
// 属性の値を取得
String^ value = f->GetDetailsOf(item, i);
//値があれば表示
if (!String::IsNullOrEmpty( value ))
{
Console::WriteLine("{0,3} : {1}", i, name);//属性名
Console::WriteLine("\t{0}", value);//値
}
i++;
name = f->GetDetailsOf(NULL, i);
}
Console::ReadLine();//入力待-ウインドウ維持
}



0 件のコメント:
コメントを投稿