bool RageFileDriverDirect::Move( const RString &sOldPath_, const RString &sNewPath_ ) { RString sOldPath = sOldPath_; RString sNewPath = sNewPath_; FDB->ResolvePath( sOldPath ); FDB->ResolvePath( sNewPath ); if( this->GetFileType(sOldPath) == RageFileManager::TYPE_NONE ) return false; { const RString sDir = Dirname(sNewPath); CreateDirectories( m_sRoot + sDir ); } int size = FDB->GetFileSize( sOldPath ); int hash = FDB->GetFileHash( sOldPath ); TRACE( ssprintf("rename \"%s\" -> \"%s\"", (m_sRoot + sOldPath).c_str(), (m_sRoot + sNewPath).c_str()) ); if( DoRename(m_sRoot + sOldPath, m_sRoot + sNewPath) == -1 ) { WARN( ssprintf("rename(%s,%s) failed: %s", (m_sRoot + sOldPath).c_str(), (m_sRoot + sNewPath).c_str(), strerror(errno)) ); return false; } FDB->DelFile( sOldPath ); FDB->AddFile( sNewPath, size, hash, NULL ); return true; }
/************************************************************************** * ISvItemCm_fnInvokeCommand() */ static HRESULT WINAPI ISvItemCm_fnInvokeCommand( IContextMenu *iface, LPCMINVOKECOMMANDINFO lpcmi) { ICOM_THIS(ItemCmImpl, iface); TRACE("(%p)->(invcom=%p verb=%p wnd=%x)\n",This,lpcmi,lpcmi->lpVerb, lpcmi->hwnd); if(LOWORD(lpcmi->lpVerb) > FCIDM_SHVIEWLAST) return E_INVALIDARG; switch(LOWORD(lpcmi->lpVerb)) { case FCIDM_SHVIEW_EXPLORE: DoOpenExplore(iface, lpcmi->hwnd, "explore"); break; case FCIDM_SHVIEW_OPEN: DoOpenExplore(iface, lpcmi->hwnd, "open"); break; case FCIDM_SHVIEW_RENAME: DoRename(iface, lpcmi->hwnd); break; case FCIDM_SHVIEW_DELETE: DoDelete(iface); break; case FCIDM_SHVIEW_COPY: DoCopyOrCut(iface, lpcmi->hwnd, FALSE); break; case FCIDM_SHVIEW_CUT: DoCopyOrCut(iface, lpcmi->hwnd, TRUE); break; } return NOERROR; }
bool RageFileDriverDirect::Move( const CString &sOldPath_, const CString &sNewPath_ ) { CString sOldPath = sOldPath_; CString sNewPath = sNewPath_; FDB->ResolvePath( sOldPath ); FDB->ResolvePath( sNewPath ); if( this->GetFileType(sOldPath) == RageFileManager::TYPE_NONE ) return false; { const CString sDir = Dirname(sNewPath); CreateDirectories( m_sRoot + sDir ); } LOG->Trace( ssprintf("rename \"%s\" -> \"%s\"", (m_sRoot + sOldPath).c_str(), (m_sRoot + sNewPath).c_str()) ); if( DoRename(m_sRoot + sOldPath, m_sRoot + sNewPath) == -1 ) { LOG->Warn( ssprintf("rename(%s,%s) failed: %s", (m_sRoot + sOldPath).c_str(), (m_sRoot + sNewPath).c_str(), strerror(errno)) ); return false; } return true; }
/************************************************************************** * ISvItemCm_fnInvokeCommand() */ static HRESULT WINAPI ISvItemCm_fnInvokeCommand( IContextMenu2 *iface, LPCMINVOKECOMMANDINFO lpcmi) { ItemCmImpl *This = impl_from_IContextMenu2(iface); if (lpcmi->cbSize != sizeof(CMINVOKECOMMANDINFO)) FIXME("Is an EX structure\n"); TRACE("(%p)->(invcom=%p verb=%p wnd=%p)\n",This,lpcmi,lpcmi->lpVerb, lpcmi->hwnd); if( HIWORD(lpcmi->lpVerb)==0 && LOWORD(lpcmi->lpVerb) > FCIDM_SHVIEWLAST) { TRACE("Invalid Verb %x\n",LOWORD(lpcmi->lpVerb)); return E_INVALIDARG; } if (HIWORD(lpcmi->lpVerb) == 0) { switch(LOWORD(lpcmi->lpVerb-This->verb_offset)) { case FCIDM_SHVIEW_EXPLORE: TRACE("Verb FCIDM_SHVIEW_EXPLORE\n"); DoOpenExplore(This, lpcmi->hwnd, "explore"); break; case FCIDM_SHVIEW_OPEN: TRACE("Verb FCIDM_SHVIEW_OPEN\n"); DoOpenExplore(This, lpcmi->hwnd, "open"); break; case FCIDM_SHVIEW_RENAME: TRACE("Verb FCIDM_SHVIEW_RENAME\n"); DoRename(This, lpcmi->hwnd); break; case FCIDM_SHVIEW_DELETE: TRACE("Verb FCIDM_SHVIEW_DELETE\n"); DoDelete(This); break; case FCIDM_SHVIEW_COPY: TRACE("Verb FCIDM_SHVIEW_COPY\n"); DoCopyOrCut(This, lpcmi->hwnd, FALSE); break; case FCIDM_SHVIEW_CUT: TRACE("Verb FCIDM_SHVIEW_CUT\n"); DoCopyOrCut(This, lpcmi->hwnd, TRUE); break; case FCIDM_SHVIEW_PROPERTIES: TRACE("Verb FCIDM_SHVIEW_PROPERTIES\n"); DoOpenProperties(This, lpcmi->hwnd); break; default: FIXME("Unhandled Verb %xl\n",LOWORD(lpcmi->lpVerb)-This->verb_offset); return E_INVALIDARG; } } else { TRACE("Verb is %s\n",debugstr_a(lpcmi->lpVerb)); if (strcmp(lpcmi->lpVerb,"delete")==0) DoDelete(This); else if (strcmp(lpcmi->lpVerb,"properties")==0) DoOpenProperties(This, lpcmi->hwnd); else { FIXME("Unhandled string verb %s\n",debugstr_a(lpcmi->lpVerb)); return E_FAIL; } } return NOERROR; }