web-dev-qa-db-ja.com

ファイルのプロパティを取得する方法?

(Windowsで使用されている正確な英語の単語がわからない)FileName、Length/Duration、FileType(.avi .mp3など)など、メディアファイルのいくつかのファイルプロパティを表示するアプリケーションが必要です。私はtaglibを試しましたとwindowsapishellですが、動作する結果が得られません(参照は良好です)

ShellFile so = ShellFile.FromFilePath(file);
so.Properties.System.(everythingIwant)

表示したい多くのファイルプロパティが表示されますが、機能しませんエラーの例:

'WindowsFormsApplication2.vshost.exe'(管理(v4.0.30319)):ロードされた 'C:\ Windows\Microsoft.Net\Assembly\GAC_MSIL\WindowsBase\v4.0_4.0.0.0__31bf3856ad364e35\WindowsBase.dll'、シンボルのロードをスキップしました。モジュールが最適化され、デバッガオプションの「Just My Code」が有効になっています。プログラム '[6300] WindowsFormsApplication2.vshost.exe:Program Trace'はコード0(0x0)で終了しました。プログラム '[6300] WindowsFormsApplication2.vshost.exe:Managed(v4.0.30319)'はコード0(0x0)で終了しました。

のような簡単なもの

var thing = so.Properties.System.FileName.Description;
Console.WriteLine(thing);

動かない

JavaとPHPプログラミングは知っていますが、C#はまったく新しいです。


@ marr75と@errorstacksに感謝します。

1つのフォローアップ質問:私はこれを作成しました、そしてそれはうまくいきます

class Program
{
    static void Main(string[] args)
    {   
        string file = "E:/Dump/Shutter Island.avi";

        FileInfo oFileInfo = new FileInfo(file);
        Console.WriteLine("My File's Name: \"" + oFileInfo.Name + "\"");
        DateTime dtCreationTime = oFileInfo.CreationTime;
        Console.WriteLine("Date and Time File Created: " + dtCreationTime.ToString());
        Console.WriteLine("myFile Extension: " + oFileInfo.Extension);
        Console.WriteLine("myFile total Size: " + oFileInfo.Length.ToString());
        Console.WriteLine("myFile filepath: " + oFileInfo.DirectoryName);
        Console.WriteLine("My File's Full Name: \"" + oFileInfo.FullName + "\"");

    }               
}

情報が存在する場合にのみ情報を提供したい私が見ました

   **Exists**   Gets a value indicating whether a file exists. (Overrides FileSystemInfo.Exists.)

しかし、私はこの関数をどのように使用しますか?if(io.ofileinfo.FullName.exist){Console.Write(io.ofileinfo.fullname);}は好きではないと思います。

ファイルを確認または開くときに、その名前を取得するために、FileInfoクラスにはNameプロパティが用意されています。これがサンプルコードです:

FileInfo oFileInfo = new FileInfo(strFilename);

if (oFileInfo != null || oFileInfo.Length == 0)
{
   MessageBox.Show("My File's Name: \"" + oFileInfo.Name + "\"");
   // For calculating the size of files it holds.
   MessageBox.Show("myFile total Size: " + oFileInfo.Length.ToString());
}

次のように確認できます:

if (!oFileInfo.Exists)
{
    throw new FileNotFoundException("The file was not found.", FileName);
}

これらの日付と時刻の値を確認するには、次を使用してファイルシステム情報プロパティにアクセスします。

DateTime dtCreationTime = oFileInfo.CreationTime;
MessageBox.Show("Date and Time File Created: " + dtCreationTime.ToString());

ファイルの拡張子を知るには、FileSystemInfo.Extensionプロパティの値にアクセスします。

MessageBox.Show("myFile Extension: " + oFileInfo.Extension);
12
Enigma State

リンクはこちら 属性の確認に関する情報。

それ以外に、 FileInfo class はおそらく使用しようとしているものです。

他にどのような種類の物件を見ていますか?

6
marr75