我正在使用python+QT创建一个sftp_客户端应用程序,并决定使用C#Microsoft.VisualBasic.FileIO
库,以便使用Windows UI选项进行文件操作(如复制同名文件时的窗口对话框),这与WinSCP中的操作非常相似
我将C#代码编译为dll,并在python代码中使用它,一切正常。但在我看来,FileIO一次只能复制一个文件,这导致(在复制已经存在的文件的情况下)出现一个文件对话框窗口来处理每个文件,而不是出现一次询问如何处理所有文件
C#代码:
using Microsoft.VisualBasic.FileIO;
[DllExport]
public static OPERATION_STATUS copy_file(String src, String dst)
{
if (File.Exists(src))
{
try
{
Console.WriteLine(src + " : " + dst);
FileSystem.CopyFile(src, dst, Microsoft.VisualBasic.FileIO.UIOption.AllDialogs,
Microsoft.VisualBasic.FileIO.UICancelOption.DoNothing);
return OPERATION_STATUS.SUCCESS;
}
catch (Exception)
{
return OPERATION_STATUS.FAILED;
}
}
return OPERATION_STATUS.FAILED;
}
Python代码:
import ctypes
a = ctypes.cdll.LoadLibrary(path_to_dll)
result = a.copy_file(str.encode(src),str.encode(dst))
结果,我得到了每个文件的Windows框
但我想为所有文件创建一个对话框
目前没有回答
相关问题 更多 >
编程相关推荐