Determine whether destination for file move is on same filesystem in C# <p>I have a Windows Forms application which uses <code>File.Move</code> to move files in response to user request. This is not an asynchronous method, but when the destination is on the same drive it happens almost instantly (I assume because it can just rewrite the header and not move anything). However, it blocks the application if the destination is <em>not</em> on the same drive. Not desirable.</p> <p>So naturally I thought about switching to async. It looks like the way to do this is to use file streams and use <code>Stream.CopyToAsync</code> before removing the original. That's fine, except if it <em>is</em> on the same drive, this is a lot of wasteful copying.</p> <p>Is there a reliable way to determine if a proposed destination for a file is on a different drive than that drive is currently stored on before deciding which operation to perform? I could obviously look at the drive letter, but that seems kind of hacky and I think there are some cases like junction points where it will not work correctly.</p> <p>Another possible choice is to use something like <code>Task.Run(() =&gt; File.Move(x))</code>, although I have a vaguely bad feeling about that.</p>