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