0

ファイル システム内の基本的なテキスト、Excel、Word などのファイルをプログラムでバージョン管理する .NET でサポートされている方法はありますか?

具体的には、クライアントがレポートの実行を要求したときに、サーバーからクライアントにストリーミングされる Crystal Reports ファイルにファイル バージョン属性を追加しようとしています。FileVersionInfoファイルバージョンの読み取りのみをサポートし、、などのFile.GetAttributesもののみを取得します。HiddenReadonly

編集:これらのファイルの古いバージョンをクライアントに保持する必要がないことに注意してください。それらを削除して、新しいバージョンのレポート ファイルに置き換えることができます。クライアント側でファイルのバージョンを保持する方法が必要なだけです。

string path = @"C:\myReport.rpt";

FileVersionInfo myFileVersionInfo = FileVersionInfo.GetVersionInfo(path);

Console.WriteLine("File: " + myFileVersionInfo.FileDescription + 
                  '\n' + "Version: " + myFileVersionInfo.FileVersion);

if(File.Exists(path))
{
    var fileAttributes = File.GetAttributes(path);
}
Console.ReadKey();
4

1 に答える 1

2

プレーン ファイルにはこれらの属性がありません。それらを外部で実装する必要があります。この質問はここでも尋ねられます

MSDNによると:

バージョン リソースは通常、Win32 リソース ファイルまたはアセンブリ属性で指定されます。たとえば、IsDebug プロパティは、Win32 リソース ファイルの VERSIONINFO リソースから構築されたファイルの VS_FIXEDFILEINFO ブロックの VS_FF_DEBUG フラグ値を反映します。Win32 リソース ファイルでバージョン リソースを指定する方法の詳細については、プラットフォーム SDK の「リソース ファイルについて」および「VERSIONINFO リソース」を参照してください。.NET モジュールでバージョン リソースを指定する方法の詳細については、「アセンブリ属性の設定」トピックを参照してください。 MSDN

そのため、すべてのファイルの属性を個別の「リソース」ファイルに格納するネイティブな方法がありますが、これにはネイティブ メソッド呼び出しと .net ワーパー クラスが含まれます。

于 2013-04-23T14:00:57.590 に答える