rai002 @ ウィキ

DATA型:基本

最終更新:

rai002

- view
管理者のみ編集可

基本(search_dir.h)

#ifndef SEARCH_DIR_H
#define SEARCH_DIR_H
 
//**********************************************************************
//	作成日:2009/09/19~
//	作成者:雷:rai
//**********************************************************************
//	利用可能OSなど
//		OS:XP,Vista ⇒ディスクトップなどの取得
//		.Net Framework 2.0 ⇒ ショートカットファイルからの情報取得
//**********************************************************************
//	ドライブを認識して、フォルダを検索するとか
//	最大パスサイズ:260
//		足りるか足りないか検討が必要
//		足りないときはUnicode対応にして W の分類となっているのを利用すること
//**********************************************************************
 
 
#include <windows.h>
#include <string>
#include <iostream>
#include <vector>
#include <time.h>
#include <conio.h>
#include <tchar.h>
 
#include <locale.h>
#include <shlobj.h>//	特殊フォルダへのアドレス取得
 
#define MAX_NAME_NUMBER ( MAX_PATH  )
#define MAX_PATH_NAME 32000
#define OS_XP 5
#define OS_VISTA 6
 
using namespace std;
 
namespace rai{
 
class DATA{
public:
	string directory;
	long long int time;
	int importance;	//重要度:初期ソート用?
	void disp();
	void setTime(FILETIME *ft);		//FILETIME を時間に変換して保存
	void setSysTime(SYSTEMTIME &t);	//SYSTEMTIME を時間に変換して保存
	bool Comparison( string &str){ return directory==str;}	//true:同じ
	DATA(){
		directory = "\0";
		time = 0;
		importance = 1;
	}
	DATA( const DATA &t){
		directory = t.directory;
		time = t.time;
		importance = t.importance;
	}
};
 
class get_dir{
	string user_name, user_dir;//	ユーザー名、Documents and Settingsの場所
	string My_desk, My_docu;
	int os_ver;		// -1:対応外
	vector<string> un_search_str;
	vector<string> drive_info;	//ドライブ情報
 
	long long int nowTime;
public:
	vector<DATA> data;
	vector<DATA> all_data;	//全データを格納
 
	vector<string> no_data;
	vector<string> desk_dir_data;	//ディスクトップショートカットリンク
	vector<string> docu_dir_data;	//マイドキュメントフォルダショートカット
	vector<string> quick_data;	//クイックランチャーショートカットリンク
 
	string file_name;
 
	int filelist(const char *sFindDir, const char *sFindFile, int rank);
 
	//	除外ファイル指定
	bool UnSearch( string str);	
	void UnSearchData();
 
	//ドライブが開けるか検査
	bool OpenDrive( string str );
	//フォルダ検索
	void SearchDir();
 
	//ユーザー名の取得
	string get_user_name();
	void Get_user_folder();
 
	//ディスクトップ、クイックランチャーのショートカット取得
	int filelist_user(const char *sFindDir, const char *sFindFile, vector<string> &tempDir);
 
	//Windowsのバージョン情報取得
	void Get_OS_Ver_Inf();
 
	//ショートカットの情報取得
	string Get_Short_Cut_link_Info( string );
 
	//wchar_t を string に変換
	string wchar_t_To_string(wchar_t *wstr);
 
	//格納データの加工
	void data_Processing();
 
	//拡張子を返す:もう少し高速化できないだろうか?
	string GetExtension( string &str);
 
	//データのソートおよび重複ファイルの間引き&重要度付け
	void Set_All_data();
 
	//ファイルの時間取得
	DATA get_FileToTime(string &);
 
	//コンストラクタ
	get_dir(){
		UnSearchData();
		user_name=get_user_name();
		Get_OS_Ver_Inf();
		//機能確認(日付表示)
		{
			SYSTEMTIME T;
			GetLocalTime( &T );
			DATA t_temp;
			t_temp.setSysTime( T );
			nowTime = t_temp.time;
		}
	}
};
 
}	//namespace rai ここまで
 
 
#endif
 
 
ウィキ募集バナー