import java.io.File;
import java.io.IOException;
-import org.apache.commons.httpclient.HttpException;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.oc_framework.network.webdav.WebdavClient;
mNewRemotePath += OCFile.PATH_SEPARATOR;
}
- // check if a file with the new name already exists
- if (client.existsFile(mNewRemotePath) || // remote check could fail by network failure. by indeterminate behavior of HEAD for folders ...
- mStorageManager.getFileByPath(mNewRemotePath) != null) { // ... so local check is convenient
+ // ckeck local overwrite
+ if (mStorageManager.getFileByPath(mNewRemotePath) != null) {
return new RemoteOperationResult(ResultCode.INVALID_OVERWRITE);
}
-
- RenameRemoteFileOperation operation = new RenameRemoteFileOperation(mFile.getFileName(), mFile.getRemotePath(), mNewName,
- mNewRemotePath);
- result = operation.execute(client);
+
+ RenameRemoteFileOperation operation = new RenameRemoteFileOperation(mFile.getFileName(), mFile.getRemotePath(),
+ mNewName, mFile.isFolder());
+ result = operation.execute(client);
- if (result.isSuccess()) {
- if (mFile.isFolder()) {
- saveLocalDirectory();
+ if (result.isSuccess()) {
+ if (mFile.isFolder()) {
+ saveLocalDirectory();
- } else {
- saveLocalFile();
+ } else {
+ saveLocalFile();
+ }
}
- }
- } catch (HttpException e) {
- Log_OC.e(TAG, "Rename " + mFile.getRemotePath() + " to " + ((mNewRemotePath==null) ? mNewName : mNewRemotePath) + ": " +
- ((result!= null) ? result.getLogMessage() : ""), e);
- e.printStackTrace();
+
} catch (IOException e) {
Log_OC.e(TAG, "Rename " + mFile.getRemotePath() + " to " + ((mNewRemotePath==null) ? mNewName : mNewRemotePath) + ": " +
((result!= null) ? result.getLogMessage() : ""), e);
- e.printStackTrace();
}
return result;