hallo!
und wiedermal hab ich ein kleines problem.
ich nutze folgenden code um einen OutputStream auf eine datei zu öffnen.
ist die datei schreibgeschützt, entferne ich diesen per getRuntime().exec (jop, ich weis... nicht mehr OS unabhängig )
nun scheint java aber noch nicht ganz zu raffen, dass der schreibschutz entfernt wurde... ich erhalte eine IOException.
ziehe ich den explorer zu rate, sehe ich, dass der schreibschutz entfernt wurde.
ich denke per sleep könnte man da was machen, finde ich aber eine unschöne lösung.
kennt jemand das problem oder hat anregungen zu einer lösung?
viele dank & grüsse aus der schweiz
m@nu
und wiedermal hab ich ein kleines problem.
ich nutze folgenden code um einen OutputStream auf eine datei zu öffnen.
ist die datei schreibgeschützt, entferne ich diesen per getRuntime().exec (jop, ich weis... nicht mehr OS unabhängig )
Code:
public OutputStream getTransferTarget(final FileDescriptor fileDescriptor) throws PluginSyncException {
/* Vorbereiten: */
String localFile = PluginHelper.fileDescriptorToAbsolutePath(fileDescriptor, path);
OutputStream stream = null;
File file = new File(localFile);
try {
/* Datei prüfen: */
if(!file.exists()) {
// Falls nötig, leere Datei erstellen:
file.createNewFile();
} else {
// Schreibschutz entfernen (falls nötig):
if(!file.canWrite()) {
Runtime.getRuntime().exec("cmd /c attrib -R \"" + localFile + "\"");
}
}
/* Stream holen: */
stream = new FileOutputStream(localFile);
} catch (IOException e) {
throw new PluginSyncException(PluginSyncException.msgERROROPENOUTPUTSTREAM,
fileDescriptor);
}
/* Rückgabe: */
return stream;
}
nun scheint java aber noch nicht ganz zu raffen, dass der schreibschutz entfernt wurde... ich erhalte eine IOException.
ziehe ich den explorer zu rate, sehe ich, dass der schreibschutz entfernt wurde.
ich denke per sleep könnte man da was machen, finde ich aber eine unschöne lösung.
kennt jemand das problem oder hat anregungen zu einer lösung?
viele dank & grüsse aus der schweiz
m@nu