Can't delete file right after creating them
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- C#
- Estrellas
- 4.4k
- Forks
- 993
- Merge medio
- 9 d 21 h
- PR fusionados (30 d)
- 1
Descripción
I am wondering if this is an issue or my process flaw. I am not be able to delete a file that just created. But, on WinSCP, I am able to delete them manually.
There is a case where the file got locked and I can't delete them because it says that "Permission Denied" and I can't delete them as SFTP user or OS (windows) user. I did checked that the file is owned by Administrator.
Here is the code that I use to produce the problem.
private static void uploadZip(string fTPAddress, string ftpPath, string fTPUsername, string fTPPassword, string zipFilePath, string zipFileName) {
// Build username/password
var passwordAuth = new PasswordAuthenticationMethod(fTPUsername, fTPPassword);
// Build connection
var connectionInfo = new ConnectionInfo(fTPAddress, fTPUsername, passwordAuth);
using (var client = new SftpClient(connectionInfo)) {
Console.WriteLine("Connecting " + fTPAddress + "... ");
client.Connect();
Console.WriteLine(client.IsConnected ? "Connected!" : "Disconnected.");
// Upload file
try {
Console.WriteLine("Creating new path + file...");
client.Create(ftpPath + zipFileName);
Console.WriteLine("Created!");
if (client.Exists(ftpPath + zipFileName)) {
Console.WriteLine(ftpPath + zipFileName + " Exists!");
Console.WriteLine("Deleting " + ftpPath + zipFileName + "... ");
client.Delete(ftpPath + zipFileName);
Console.WriteLine("Deleted");
} else {
Console.WriteLine("Uploading file...");
using (FileStream stream = File.Open(zipFilePath, FileMode.Open)) {
client.UploadFile(stream, ftpPath + zipFileName);
}
Console.WriteLine("Uploaded!");
}
} catch (Exception e) {
Console.WriteLine("-- Something wrong on execution: " + e.Message);
Console.WriteLine(e.StackTrace);
} finally {
Console.WriteLine("Disconnecting... ");
client.Disconnect();
Console.WriteLine(client.IsConnected ? "Connected!" : "Disconnected.");
Console.WriteLine("Deleting " + zipFilePath + "...");
File.Delete(zipFilePath);
Console.WriteLine(zipFilePath + " Deleted...");
}
}
}
The output:
C:\Users\btobias>C:\WorkingCopies\PCCDBAssembly\PCCDB.Docs.Run\bin\Dev\PCCDB.Docs.Run.exe
( 0 milliseconds) Type found: PCCDB.PCC.Library.LibraryPatronDump
( 0 milliseconds) Method found: LibraryPatronDumpExe
( 1 milliseconds) Parameter 0: ftpAddress (System.String): ftp.test.com
( 1 milliseconds) Parameter 1: ftpPath (System.String): /alma/test/
( 1 milliseconds) Parameter 2: ftpUsername (System.String): XXXXX
( 2 milliseconds) Parameter 3: ftpPassword (System.String): XXXXXXXXXXXXXX
( 2 milliseconds) Parameter 4: syncPersonnelIncluded (System.String): Y
( 3 milliseconds) Executing...
( 9292 milliseconds) Connecting ftp.pcci.edu...
( 9528 milliseconds) Connected!
( 9528 milliseconds) Creating new path + file...
( 9539 milliseconds) Created!
( 9546 milliseconds) /alma/test/PatronDump2.zip Exists!
( 9546 milliseconds) Deleting /alma/test/PatronDump2.zip...
( 9553 milliseconds) -- Something wrong on execution: Permission denied
( 9555 milliseconds) at Renci.SshNet.Sftp.SftpSession.RequestRemove(String path)
at PCCDB.PCC.Library.LibraryPatronDump.uploadZip(String fTPAddress, String ftpPath, String fTPUsername, String fTPPassword, String zipFilePath, String zipFileName) in C:\WorkingCopies\PCCDBAssembly\PCCDB.Docs\PCC\Library\LibraryPatronDump.cs:line 94
( 9556 milliseconds) Disconnecting...
( 9607 milliseconds) Disconnected.
( 9607 milliseconds) Deleting C:\Temp\PatronDump2.zip...
( 9609 milliseconds) C:\Temp\PatronDump2.zip Deleted...
( 9609 milliseconds) Finished...
( 9610 milliseconds)
Press any key...
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con la secuencia notificada SftpClient.Create y client.Delete y, a continuación, inspecciona la llamada SftpSession.RequestRemove que se muestra en el stack trace. Reproduce el resultado de permiso denegado y compáralo con los detalles de propiedad del servidor y de Windows; el trabajo estará terminado cuando se haya establecido si SSH.NET o los permisos del servidor son responsables, con una prueba de regresión específica solo si la biblioteca es la causa.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- csharp
- Área
- networking
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100