mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-04 07:35:24 +02:00
[181553] delete obsolete temp files before transfering
This commit is contained in:
parent
b5980ec2a6
commit
216e97eaf8
4 changed files with 47 additions and 6 deletions
|
@ -40,6 +40,7 @@ import org.eclipse.core.runtime.CoreException;
|
|||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.NullProgressMonitor;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
|
@ -341,7 +342,7 @@ public class UniversalFileTransferUtility
|
|||
{
|
||||
|
||||
IFile tempFile = copyRemoteFileToWorkspace(srcFileOrFolder, monitor);
|
||||
resultSet.addResource(tempFile);
|
||||
resultSet.addResource(tempFile);
|
||||
}
|
||||
else // folder transfer
|
||||
{
|
||||
|
@ -385,7 +386,7 @@ public class UniversalFileTransferUtility
|
|||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -436,9 +437,44 @@ public class UniversalFileTransferUtility
|
|||
*/
|
||||
}
|
||||
|
||||
|
||||
return resultSet;
|
||||
}
|
||||
|
||||
public static void discardReplicasOfDeletedFiles(IRemoteFileSubSystem ss, IContainer folder)
|
||||
{
|
||||
try
|
||||
{
|
||||
IResource[] members = folder.members();
|
||||
for (int i = 0; i < members.length; i++)
|
||||
{
|
||||
IResource member = members[i];
|
||||
if (member instanceof IFile)
|
||||
{
|
||||
// is this a valid replica?
|
||||
SystemIFileProperties properties = new SystemIFileProperties(member);
|
||||
String path = properties.getRemoteFilePath();
|
||||
if (path != null)
|
||||
{
|
||||
IRemoteFile remoteFile = ss.getRemoteFileObject(path);
|
||||
if (remoteFile != null && !remoteFile.exists())
|
||||
{
|
||||
// this must be old so we should delete this
|
||||
member.delete(false, new NullProgressMonitor());
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (member instanceof IContainer)
|
||||
{
|
||||
discardReplicasOfDeletedFiles(ss, (IContainer)member);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public static Object copyRemoteResourceToWorkspace(File srcFileOrFolder, IProgressMonitor monitor) {
|
||||
|
||||
if (!srcFileOrFolder.exists()) {
|
||||
|
|
|
@ -1500,7 +1500,12 @@ public class SystemViewRemoteFileAdapter
|
|||
for (int i = 0; i < set.size(); i++)
|
||||
{
|
||||
IRemoteFile remoteFile = (IRemoteFile)set.get(i);
|
||||
hierarchicalResult.addResource(UniversalFileTransferUtility.getTempFileFor(remoteFile));
|
||||
IResource tempResource = UniversalFileTransferUtility.getTempFileFor(remoteFile);
|
||||
if (tempResource instanceof IContainer)
|
||||
{
|
||||
UniversalFileTransferUtility.discardReplicasOfDeletedFiles((IRemoteFileSubSystem)set.getSubSystem(), (IContainer)tempResource);
|
||||
}
|
||||
hierarchicalResult.addResource(tempResource);
|
||||
}
|
||||
return hierarchicalResult;
|
||||
}
|
||||
|
|
|
@ -361,7 +361,7 @@ public class DStoreHostFile implements IHostFile
|
|||
String str = getAttribute(_element.getSource(), ATTRIBUTE_CAN_READ);
|
||||
if (str == null)
|
||||
{
|
||||
System.out.println("HELP:"+_element.toString()); //$NON-NLS-1$
|
||||
//System.out.println("HELP:"+_element.toString()); //$NON-NLS-1$
|
||||
return false;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -76,12 +76,12 @@ public class DStoreFile extends AbstractRemoteFile implements IRemoteFile
|
|||
String parentPath = pathOnly;
|
||||
if (nameSep > 0)
|
||||
{
|
||||
parentName = pathOnly.substring(nameSep);
|
||||
parentName = pathOnly.substring(nameSep + 1);
|
||||
parentPath = pathOnly.substring(0, nameSep);
|
||||
}
|
||||
else
|
||||
{
|
||||
parentName = pathOnly.substring(nameSep);
|
||||
parentName = pathOnly.substring(nameSep + 1);
|
||||
parentPath = "" + sep;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue