1 /*=============================================================================
\r
5 ===============================================================================
\r
6 / Copyright (C) 1997-2007 Sota. All rights reserved.
\r
8 / Redistribution and use in source and binary forms, with or without
\r
9 / modification, are permitted provided that the following conditions
\r
12 / 1. Redistributions of source code must retain the above copyright
\r
13 / notice, this list of conditions and the following disclaimer.
\r
14 / 2. Redistributions in binary form must reproduce the above copyright
\r
15 / notice, this list of conditions and the following disclaimer in the
\r
16 / documentation and/or other materials provided with the distribution.
\r
18 / THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
\r
19 / IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
\r
20 / OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
\r
21 / IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
\r
22 / INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
\r
23 / BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
\r
24 / USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
\r
25 / ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
\r
26 / (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
\r
27 / THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\r
28 /============================================================================*/
\r
31 #include <windows.h>
\r
36 #include <windowsx.h>
\r
39 #include "resource.h"
\r
43 /*----- ローカル側のディレクトリ変更 -------------------------------------------
\r
50 * FFFTP_SUCCESS/FFFTP_FAIL
\r
51 *----------------------------------------------------------------------------*/
\r
53 int DoLocalCWD(char *Path)
\r
57 Sts = FFFTP_SUCCESS;
\r
58 SetTaskMsg(">>CD %s", Path);
\r
59 if(SetCurrentDirectory(Path) != TRUE)
\r
61 SetTaskMsg(MSGJPN145);
\r
68 /*----- ローカル側のディレクトリ作成 -------------------------------------------
\r
75 *----------------------------------------------------------------------------*/
\r
77 void DoLocalMKD(char *Path)
\r
79 SetTaskMsg(">>MKDIR %s", Path);
\r
80 if(_mkdir(Path) != 0)
\r
81 SetTaskMsg(MSGJPN146);
\r
86 /*----- ローカル側のカレントディレクトリ取得 -----------------------------------
\r
89 * char *Buf : パス名を返すバッファ
\r
93 *----------------------------------------------------------------------------*/
\r
95 void DoLocalPWD(char *Buf)
\r
97 if(GetCurrentDirectory(FMAX_PATH, Buf) == 0)
\r
103 /*----- ローカル側のディレクトリ削除 ------------------------------------------
\r
110 *----------------------------------------------------------------------------*/
\r
112 void DoLocalRMD(char *Path)
\r
115 SetTaskMsg(">>RMDIR %s", Path);
\r
116 if(rmdir(Path) != 0)
\r
117 SetTaskMsg(MSGJPN147);
\r
119 SetTaskMsg(">>RMDIR %s", Path);
\r
121 if(MoveFileToTrashCan(Path) != 0)
\r
122 SetTaskMsg(MSGJPN148);
\r
128 /*----- ローカル側のファイル削除 -----------------------------------------------
\r
135 *----------------------------------------------------------------------------*/
\r
137 void DoLocalDELE(char *Path)
\r
140 SetTaskMsg(">>DEL %s", Path);
\r
141 if(DeleteFile(Path) != TRUE)
\r
142 SetTaskMsg(MSGJPN149);
\r
144 SetTaskMsg(">>DEL %s", Path);
\r
146 if(MoveFileToTrashCan(Path) != 0)
\r
147 SetTaskMsg(MSGJPN150);
\r
153 /*----- ローカル側のファイル名変更 ---------------------------------------------
\r
156 * char *Src : 元ファイル名
\r
157 * char *Dst : 変更後のファイル名
\r
161 *----------------------------------------------------------------------------*/
\r
163 void DoLocalRENAME(char *Src, char *Dst)
\r
165 SetTaskMsg(">>REN %s %s", Src, Dst);
\r
166 if(MoveFile(Src, Dst) != TRUE)
\r
167 SetTaskMsg(MSGJPN151);
\r
172 /*----- ファイルのプロパティを表示する ----------------------------------------
\r
175 * char *Fname : ファイル名
\r
179 *----------------------------------------------------------------------------*/
\r
181 void DispFileProperty(char *Fname)
\r
183 SHELLEXECUTEINFO sInfo;
\r
185 memset(&sInfo, NUL, sizeof(SHELLEXECUTEINFO));
\r
186 sInfo.cbSize = sizeof(SHELLEXECUTEINFO);
\r
187 sInfo.fMask = SEE_MASK_INVOKEIDLIST;
\r
188 sInfo.hwnd = NULL; //GetMainHwnd();
\r
189 sInfo.lpVerb = "Properties";
\r
190 sInfo.lpFile = Fname;
\r
191 sInfo.lpParameters = NULL;
\r
192 sInfo.lpDirectory = NULL;
\r
193 sInfo.nShow = SW_NORMAL;
\r
194 sInfo.lpIDList = NULL;
\r
195 ShellExecuteEx(&sInfo);
\r
200 /*----- 属性をチェックする FindFirstFile --------------------------------------
\r
203 * char *Fname : ファイル名
\r
204 * WIN32_FIND_DATA *FindData : 検索データ
\r
205 * int IgnHide : 隠しファイルを無視するかどうか(YES/NO)
\r
209 *----------------------------------------------------------------------------*/
\r
211 HANDLE FindFirstFileAttr(char *Fname, WIN32_FIND_DATA *FindData, int IgnHide)
\r
215 if((hFind = FindFirstFile(Fname, FindData)) != INVALID_HANDLE_VALUE)
\r
219 while(FindData->dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)
\r
221 if(FindNextFile(hFind, FindData) == FALSE)
\r
224 hFind = INVALID_HANDLE_VALUE;
\r
234 /*----- 属性をチェックする FindNextFile ---------------------------------------
\r
237 * HANDLE hFind : ハンドル
\r
238 * WIN32_FIND_DATA *FindData : 検索データ
\r
239 * int IgnHide : 隠しファイルを無視するかどうか(YES/NO)
\r
243 *----------------------------------------------------------------------------*/
\r
245 BOOL FindNextFileAttr(HANDLE hFind, WIN32_FIND_DATA *FindData, int IgnHide)
\r
249 while((Ret = FindNextFile(hFind, FindData)) == TRUE)
\r
253 if((FindData->dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) == 0)
\r