else\r
Ret = EXIST_IGNORE;\r
}\r
+ // 同じ名前のファイルの処理方法追加\r
+ if(Ret == EXIST_LARGE)\r
+ {\r
+ if(MakeLongLong(Find.nFileSizeHigh, Find.nFileSizeLow) < Pkt->Size)\r
+ Ret = EXIST_OVW;\r
+ else\r
+ Ret = EXIST_IGNORE;\r
+ }\r
}\r
}\r
return(Ret);\r
static INT_PTR CALLBACK DownExistDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam)\r
{\r
static TRANSPACKET *Pkt;\r
+ // 同じ名前のファイルの処理方法追加\r
+// static const RADIOBUTTON DownExistButton[] = {\r
+// { DOWN_EXIST_OVW, EXIST_OVW },\r
+// { DOWN_EXIST_NEW, EXIST_NEW },\r
+// { DOWN_EXIST_RESUME, EXIST_RESUME },\r
+// { DOWN_EXIST_IGNORE, EXIST_IGNORE }\r
+// };\r
static const RADIOBUTTON DownExistButton[] = {\r
{ DOWN_EXIST_OVW, EXIST_OVW },\r
{ DOWN_EXIST_NEW, EXIST_NEW },\r
{ DOWN_EXIST_RESUME, EXIST_RESUME },\r
- { DOWN_EXIST_IGNORE, EXIST_IGNORE }\r
+ { DOWN_EXIST_IGNORE, EXIST_IGNORE },\r
+ { DOWN_EXIST_LARGE, EXIST_LARGE }\r
};\r
#define DOWNEXISTBUTTONS (sizeof(DownExistButton)/sizeof(RADIOBUTTON))\r
\r
\r
strcpy(Pkt.Cmd, "STOR ");\r
Pkt.Type = AskTransferTypeAssoc(Pkt.LocalFile, AskTransferType());\r
- Pkt.Size = 0;\r
+ // バグ修正\r
+// Pkt.Size = 0;\r
+ Pkt.Size = Pos->Size;\r
Pkt.Time = Pos->Time;\r
Pkt.Attr = AskUploadFileAttr(Pkt.RemoteFile);\r
Pkt.KanjiCode = AskHostKanjiCode();\r
\r
strcpy(Pkt.Cmd, "STOR ");\r
Pkt.Type = AskTransferTypeAssoc(Pkt.LocalFile, AskTransferType());\r
- Pkt.Size = 0;\r
+ // バグ修正\r
+// Pkt.Size = 0;\r
+ Pkt.Size = Pos->Size;\r
Pkt.Time = Pos->Time;\r
Pkt.Attr = AskUploadFileAttr(Pkt.RemoteFile);\r
Pkt.KanjiCode = AskHostKanjiCode();\r
\r
strcpy(Pkt.Cmd, "STOR ");\r
Pkt.Type = AskTransferTypeAssoc(Pkt.LocalFile, AskTransferType());\r
- Pkt.Size = 0;\r
+ // バグ修正\r
+// Pkt.Size = 0;\r
+ Pkt.Size = LocalPos->Size;\r
Pkt.Time = LocalPos->Time;\r
Pkt.Attr = AskUploadFileAttr(Pkt.RemoteFile);\r
Pkt.KanjiCode = AskHostKanjiCode();\r
else\r
Ret = EXIST_IGNORE;\r
}\r
+ // 同じ名前のファイルの処理方法追加\r
+ if(Ret == EXIST_LARGE)\r
+ {\r
+ if(Exist->Size < Pkt->Size)\r
+ Ret = EXIST_OVW;\r
+ else\r
+ Ret = EXIST_IGNORE;\r
+ }\r
}\r
}\r
return(Ret);\r
static INT_PTR CALLBACK UpExistDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam)\r
{\r
static TRANSPACKET *Pkt;\r
+ // 同じ名前のファイルの処理方法追加\r
+// static const RADIOBUTTON UpExistButton[] = {\r
+// { UP_EXIST_OVW, EXIST_OVW },\r
+// { UP_EXIST_NEW, EXIST_NEW },\r
+// { UP_EXIST_RESUME, EXIST_RESUME },\r
+// { UP_EXIST_UNIQUE, EXIST_UNIQUE },\r
+// { UP_EXIST_IGNORE, EXIST_IGNORE }\r
+// };\r
static const RADIOBUTTON UpExistButton[] = {\r
{ UP_EXIST_OVW, EXIST_OVW },\r
{ UP_EXIST_NEW, EXIST_NEW },\r
{ UP_EXIST_RESUME, EXIST_RESUME },\r
{ UP_EXIST_UNIQUE, EXIST_UNIQUE },\r
- { UP_EXIST_IGNORE, EXIST_IGNORE }\r
+ { UP_EXIST_IGNORE, EXIST_IGNORE },\r
+ { UP_EXIST_LARGE, EXIST_LARGE }\r
};\r
#define UPEXISTBUTTONS (sizeof(UpExistButton)/sizeof(RADIOBUTTON))\r
\r
AskRemoteCurDir(HostDir, FMAX_PATH);\r
\r
// ドロップ先のフォルダ名を得る\r
- GetNodeName(WIN_REMOTE, drop_index, Pkt.File, FMAX_PATH);\r
+ // 上位のディレクトリへ移動対応\r
+// GetNodeName(WIN_REMOTE, drop_index, Pkt.File, FMAX_PATH);\r
+ if(drop_index >= 0)\r
+ GetNodeName(WIN_REMOTE, drop_index, Pkt.File, FMAX_PATH);\r
+ else\r
+ strcpy(Pkt.File, "..");\r
\r
if(MoveMode == MOVE_DLG)\r
{\r
\r
strcpy(Path, "");\r
if(Win == WIN_LOCAL)\r
- Sts = InputDialogBox(chdir_br_dlg, GetMainHwnd(), Title, Path, FMAX_PATH+1, &Tmp, IDH_HELP_TOPIC_0000001);\r
+ // フォルダ選択ダイアログを直接表示\r
+// Sts = InputDialogBox(chdir_br_dlg, GetMainHwnd(), Title, Path, FMAX_PATH+1, &Tmp, IDH_HELP_TOPIC_0000001);\r
+ {\r
+ if(SelectDir(GetMainHwnd(), Path, FMAX_PATH) == TRUE)\r
+ Sts = YES;\r
+ }\r
else\r
Sts = InputDialogBox(chdir_dlg, GetMainHwnd(), Title, Path, FMAX_PATH+1, &Tmp, IDH_HELP_TOPIC_0000001);\r
\r
\r
// 自動切断対策\r
// NOOPコマンドでは効果が無いホストが多いためLISTコマンドを使用\r
-void NoopProc(void)\r
+void NoopProc(int Force)\r
{\r
int CancelCheckWork;\r
CancelCheckWork = NO;\r
- if(AskConnecting() == YES && AskUserOpeDisabled() == NO)\r
+ if(Force == YES || (AskConnecting() == YES && AskUserOpeDisabled() == NO))\r
{\r
if(AskReuseCmdSkt() == NO || AskShareProh() == YES || AskTransferNow() == NO)\r
{\r