This is an old revision of the document!
Session.FileExists Method
Checks for existence of remote file or directory.
Advertisement
Syntax
public bool FileExists(string path)
Public Function FileExists(path As String) As Boolean
Parameters
Name | Description |
---|---|
string path | Full path to remote file.1 |
Return Value
true
if file exists, false
otherwise.
Exceptions
Exception | Condition |
---|---|
InvalidOperationException | Session is not opened. |
SessionLocalException | Error communicating with winscp.com . See the exception documentation for details. |
TimeoutException | Timeout waiting for winscp.com to respond. |
Advertisement
Examples
C# Example
using System; using WinSCP; class Example { public static int Main() { try { // Setup session options SessionOptions sessionOptions = new SessionOptions { Protocol = Protocol.Sftp, HostName = "example.com", UserName = "user", Password = "mypassword", SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx...=" }; using (Session session = new Session()) { // Connect session.Open(sessionOptions); const string remotePath = "/home/user/test.txt"; if (session.FileExists(remotePath)) { Console.WriteLine("File {0} exists", remotePath); // Now you can e.g. download file using session.GetFiles return 0; } else { Console.WriteLine("File {0} does not exists", remotePath); return 1; } } } catch (Exception e) { Console.WriteLine("Error: {0}", e); return 2; } } }
Advertisement
VB.NET Example
Imports WinSCP Friend Class Example Public Shared Function Main() As Integer Try ' Setup session options Dim sessionOptions As New SessionOptions With sessionOptions .Protocol = Protocol.Sftp .HostName = "example.com" .UserName = "user" .Password = "mypassword" .SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx...=" End With Using session As New Session ' Connect session.Open(sessionOptions) Const remotePath As String = "/home/user/test.txt" If session.FileExists(remotePath) Then Console.WriteLine("File {0} exists", remotePath) ' Now you can e.g. download file using session.GetFiles Return 0 Else Console.WriteLine("File {0} does not exist", remotePath) Return 1 End If End Using Catch e As Exception Console.WriteLine("Error: {0}", e) Return 2 End Try End Function End Class
PowerShell Example
Learn more about using WinSCP .NET assembly from PowerShell.
Advertisement
try { # Load WinSCP .NET assembly Add-Type -Path "WinSCPnet.dll" # Setup session options $sessionOptions = New-Object WinSCP.SessionOptions -Property @{ Protocol = [WinSCP.Protocol]::Sftp HostName = "example.com" UserName = "user" Password = "mypassword" SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx...=" } $session = New-Object WinSCP.Session try { # Connect $session.Open($sessionOptions) $remotePath = "/home/user/test.txt" if ($session.FileExists($remotePath)) { Write-Host "File $remotePath exists" # Now you can e.g. download file using session.GetFiles exit 0 } else { Write-Host "File $remotePath does not exist" exit 1 } } finally { # Disconnect, clean up $session.Dispose() } } catch { Write-Host "Error: $($_.Exception.Message)" exit 2 }
JScript (WSH) Example
In this example the JScript script is embedded into WSF file, to allow access to enumeration values.
Advertisement
<job> <reference object="WinSCP.Session"/> <script language="JScript"> try { // Setup session options var sessionOptions = WScript.CreateObject("WinSCP.SessionOptions"); sessionOptions.Protocol = Protocol_Sftp; sessionOptions.HostName = "example.com"; sessionOptions.UserName = "user"; sessionOptions.Password = "mypassword"; sessionOptions.SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx...="; var session = WScript.CreateObject("WinSCP.Session"); var result; try { // Connect session.Open(sessionOptions); var remotePath = "/home/user/test.txt"; if (session.FileExists(remotePath)) { WScript.Echo("File " + remotePath + " exists"); // Now you can e.g. download file using session.GetFiles result = 0; } else { WScript.Echo("File " + remotePath + " does not exist"); result = 1; } } finally { // Disconnect, clean up session.Dispose(); } WScript.Quit(result); } catch (e) { WScript.Echo("Error: " + e.message); WScript.Quit(2); } </script> </job>
Advertisement
VBScript (WSH) Example
In this example the VBScript script is embedded into WSF file, to allow access to enumeration values.
<job> <reference object="WinSCP.Session"/> <script language="VBScript"> Option Explicit ' Setup session options Dim sessionOptions Set sessionOptions = WScript.CreateObject("WinSCP.SessionOptions") With sessionOptions .Protocol = Protocol_Sftp .HostName = "example.com" .UserName = "user" .Password = "mypassword" .SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx...=" End With Dim session Set session = WScript.CreateObject("WinSCP.Session") ' Connect session.Open sessionOptions remotePath = "/home/user/test.txt" Dim fs Set fs = WScript.CreateObject("Scripting.FileSystemObject") If session.FileExists(remotePath) Then WScript.Echo "File " & remotePath & " exists" ' Now you can e.g. download file using session.GetFiles Else WScript.Echo "File " & remotePath & " does not exist" End If ' Disconnect, clean up session.Dispose </script> </job>
Real-Life Examples
- Checking file existence and timestamp;
- Recursively move files in directory tree to/from SFTP/FTP server while preserving source directory structure.
Advertisement