1
0
Fork 0
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:
David McKnight 2007-04-25 18:05:33 +00:00
parent b5980ec2a6
commit 216e97eaf8
4 changed files with 47 additions and 6 deletions

View file

@ -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()) {

View file

@ -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;
}

View file

@ -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

View file

@ -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;
}