ファイルのタイムスタンプ取得はどのように?

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
wakaba
記事: 32
登録日時: 2007年1月27日(土) 14:03

ファイルのタイムスタンプ取得はどのように?

#1 投稿記事 by wakaba »

Actuve Basic を始めて 4日目の超初心者です
以前はHSPで 市販ソフトが及ばない小さなソフトを作ってました
HSPも大変優秀なソフトですが Ver2.6なので ボタンやフォームが
大変でした
そのうえデバグが なかなかうまく行かないので ABを考えました

ABは RADツールで楽そうなので 始めましたが ヘルプが ”ソフト
初心者” には 解りづらいのです
がんばって 「7」さんの ヘルプや このコミュニティで 調べるけど
解りません
私がWin32APIに詳しくないのが原因でしょうが
Declare Function GetFileSize Lib "kernel32" _
(hFile As HANDLE, _
lpFileSizeHigh As DWordPtr) As DWord

 という ファイルサイズを調べるAPIのヘルプは さっぱり解りません
 せめて 一番単純な 使用法でもあると 素人に ヤサシイ・・

HSPでは 
------------------------------------------------------------------
fxtget p1,"file" [タイムスタンプを取得]
p1=変数名 : 情報が格納される数値型の配列変数名
"file"  : ファイル名指定
------------------------------------------------------------------
言語仕様が 違うとすれば それまでですが なんとかこれなら 解ります
「7」さんの ヘルプも 大いに参考になりましたが 1行でも 使用例が
あれば ほんと 助かります
ABの良さは 少しづつ解ってきましたが ポインタなども なかなか 高い峠です

ファイルの日付を 得て バックアップのどの世代を 復元するのかという判断を
させる時に使用したいので ずっと試行錯誤しましたが 解りません
ファイルの構造体に データを取得するようなところまでは 理解できましたが
その先に 進めません
助言をお願いします
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

Re: ファイルのタイムスタンプ取得はどのように?

#2 投稿記事 by 7 »

> Declare Function GetFileSize Lib "kernel32" _
> (hFile As HANDLE, _
> lpFileSizeHigh As DWordPtr) As DWord
>
>  という ファイルサイズを調べるAPIのヘルプは さっぱり解りません
GetFileSize()関数はファイルサイズの大きさを取得する関数ですね。
4GB以上のファイルのサイズを取得したい場合、第二引数にLong型変数へのポインタを指定します。
上位32ビットやら下位32ビットの話をするのが面倒くさいのでここはスルー...(汗)

> ファイルの日付を 得て バックアップのどの世代を 復元するのかという判断を
> させる時に使用したいので ずっと試行錯誤しましたが 解りません
> ファイルの構造体に データを取得するようなところまでは 理解できましたが
> その先に 進めません

コード: 全て選択

Dim hFile As HANDLE
Dim ft As FILETIME
Dim st As SYSTEMTIME

	hFile=CreateFile(
		"ファイルへの絶対パスを指定",
		GENERIC_READ,
		0,ByVal NULL,
		OPEN_EXISTING,
		FILE_ATTRIBUTE_NORMAL,
		0)

	If (hFile<>NULL) And (hFile<>INVALID_HANDLE_VALUE) Then

		' 第二引数はファイルの作成日時(ByVal NULLで省略可)
		' 第三引数はファイルの最終アクセス日時(ByVal NULLで省略可)
		' 第四引数はファイルの更新日時(ByVal NULLで省略可)

		' この場合、ファイルの作成日時を取得している
		GetFileTime(hFile,ft,ByVal NULL,ByVal NULL)

		CloseHandle(hFile)

		FileTimeToSystemTime(ft,st)

		Debug
	End If
> 「7」さんの ヘルプも 大いに参考になりましたが 1行でも 使用例が
> あれば ほんと 助かります
まずはヘルプの内容量を増やすのが先かなと思っていたんですけど、サンプルコードを重点的に増やした方がいいのかな、と思いました。
更新すらしてない現状ですが...。
wakaba
記事: 32
登録日時: 2007年1月27日(土) 14:03

Re: ファイルのタイムスタンプ取得はどのように?

#3 投稿記事 by wakaba »

素早い対応ありがとうです
なんとか 解決できそうです

> まずはヘルプの内容量を増やすのが先かなと思っていたんですけど、サンプルコードを重点的に増やした方がいいのかな、と思いました。

本格的にソフトを 作っている人は そんなにヘルプは必要ありません
初心者は 専門的な部分は ステートメントや 関数 APIに お任せして
自分の動かしたい所に 専念したい気持ちがあります

それが 進むと APIなどに 興味が 出てきて 1から 始めたいと思うのでは
ないかと 思います
その第一歩が 「ヘルプ」なんですヨ
ヘルプが 充実すれば ABの発展に なるのでは ないでしょうか??
スミマセン おおげさで・・・・
また シロウトの質問を よろしくお願いします
返信する