NAV で日付順に並べられたディレクトリからファイルのリストを取得するにはどうすればよいですか? 日付のキーがないため、ファイル仮想テーブルを使用できません。DotNet を試してみましたが、IComparer インターフェイスの実装は複雑すぎます。
何か案は?
乾杯
NAV で日付順に並べられたディレクトリからファイルのリストを取得するにはどうすればよいですか? 日付のキーがないため、ファイル仮想テーブルを使用できません。DotNet を試してみましたが、IComparer インターフェイスの実装は複雑すぎます。
何か案は?
乾杯
そして、ファイルテーブルのキーの正確な問題は何ですか? 私が見る限り、日付と時刻の両方がソート可能です。Nav 2015でテスト済み。
とにかく、本当に .net でやりたいのなら、ここに例があります。ベーステーブルはFile
. ページ プロパティSourceTableTemporary = Yes
。すべてのファイル情報を配列に取得したら、それを使用して好きなように並べ替えることができます。または、一時ファイル テーブルに配列の値を入力し、setcurrentkey
LOLを使用することもできます
di DotNet System.IO.DirectoryInfo.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
fi DotNet System.IO.FileSystemInfo.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
arr DotNet System.Array.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
i Integer
di := di.DirectoryInfo('c:\Temp\Tmp');
//arr.CreateInstance(GETDOTNETTYPE(fi),1); //not needed
arr := di.GetFileSystemInfos();
for i := 0 to arr.Length-1 do
begin
fi := arr.GetValue(i);
Name := fi.Name;
evaluate(Date, format(fi.LastWriteTime,8,1));
insert;
end;
di DotNet System.IO.DirectoryInfo.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
fi DotNet System.IO.FileSystemInfo.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
arr DotNet System.Array.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
arrKey DotNet System.Array.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
i Integer
TYPE DotNet System.Type.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
MethodInfo DotNet System.Reflection.MethodInfo.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
Parameters DotNet System.Array.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
Object DotNet System.Object.'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
di := di.DirectoryInfo('c:\Temp\Tmp');
arr := di.GetFileSystemInfos();
fi := arr.GetValue(0);
arrKey := arrKey.CreateInstance(GETDOTNETTYPE(fi.LastWriteTime), arr.Length);
FOR i := 0 TO arr.Length-1 DO
BEGIN
fi := arr.GetValue(i);
arrKey.SetValue(fi.LastWriteTime, i);
END;
TYPE := GETDOTNETTYPE(arr);
MethodInfo := TYPE.GetMethods().GetValue(80);
Parameters := Parameters.CreateInstance(GETDOTNETTYPE(Object),2);
Parameters.SetValue(arrKey,0);
Parameters.SetValue(arr,1);
MethodInfo.Invoke(TYPE, Parameters);
FOR i := 0 TO arr.Length-1 DO
BEGIN
fi := arr.GetValue(i);
MESSAGE(FORMAT(fi.LastWriteTime()));
END;