gpt4 book ai didi

c# - 需要使用 win32 api 在 c# 中复制文件 - 我该怎么做?

转载 作者:行者123 更新时间:2023-11-30 14:44:15 26 4
gpt4 key购买 nike

我试图复制一些文件,有时名称的长度超过 System.IO.File.Copy 方法可以接受的长度(根据抛出的异常,260 个字符)

根据我所做的研究,我应该能够将 win32 api 的文件方法与路径前的\?\结合使用以获得 32,000 个字符的限制,但我不确定我需要的女巫方法导入。

有人可以帮我解决这个问题吗?我正在寻找类似的东西(显然是一个不同的功能,但你明白了):

[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
static extern SafeFileHandle CreateFileW(string lpFileName, uint dwDesiredAccess,
uint dwShareMode, IntPtr lpSecurityAttributes, uint dwCreationDisposition,
uint dwFlagsAndAttributes, IntPtr hTemplateFile);

最佳答案

[DllImport("kernel32.dll",
CharSet = CharSet.Unicode,
CallingConvention = CallingConvention.StdCall,
SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool CopyFile(
[MarshalAs(UnmanagedType.LPWStr)] string lpExistingFileName,
[MarshalAs(UnmanagedType.LPWStr)] string lpNewFileName,
[MarshalAs(UnmanagedType.Bool)] bool bFailIfExists);

http://www.pinvoke.net/default.aspx/kernel32/CopyFile.html

关于c# - 需要使用 win32 api 在 c# 中复制文件 - 我该怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/701697/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com