Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed"

Error Domain=AVFoundationErrorDomain Code=-11800
“The operation could not be completed”

xxxxx


Error Domain=AVFoundationErrorDomain Code=-11800 “The operation could not be completed” UserInfo={AVErrorRecordingSuccessfullyFinishedKey=false, NSLocalizedFailureReason=An unknown error occurred (20), NSUnderlyingError=0x17004d740 {Error Domain=NSPOSIXErrorDomain Code=20 “Not a directory”}, NSLocalizedDescription=The operation could not be completed}


文件地址有误,之前通过

[NSHomeDirectory() stringByAppendingPathComponent:@"Documents/camera_movie"];

获取沙盒Documents目录,想要将录制的存放在对应路径下。但是一直报-11800 错误。

但是在不断尝试之后,发现改文件名是没有用的,主要是文件路径问题,有一种方案能够解决当前问题,就只把视频文件存放到沙盒目录下Library/Caches文件中。

[[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:@"camera_movie"];

文件路径就可以使用了file:///var/mobile/Containers/Data/Application/ADA3EA2F-D872-4E66-8371-01D66F4453CB/Library/Caches/camera_movie

### 解决方案 在 SQL Server 导入和导出向导中遇到“未在本地计算机上注册 Microsoft.ACE.OLEDB.16.0 提供程序”的错误,通常是由于缺少或未正确安装 Microsoft ACE 驱动程序导致的。以下是详细的解决方案: #### 1. 安装正确的 Microsoft Access Database Engine 确保已安装与操作系统架构(32位或64位)匹配的 Microsoft Access Database Engine。如果使用的是 64 位 SQL Server,则需要安装 64 位版本的 Microsoft Access Database Engine[^1]。可以从以下链接下载并安装 Microsoft Access Database Engine 2016 Redistributable: ```plaintext https://www.microsoft.com/en-us/download/details.aspx?id=54920 ``` #### 2. 确保导入/导出向导运行在正确的架构下 SQL Server 的导入和导出向导默认以 64 位模式运行。如果系统中仅安装了 32 位的 Microsoft Access Database Engine,则需要通过修改注册表项强制向导以 32 位模式运行[^2]。 - 打开注册表编辑器 (`regedit`)- 导航到以下路径: ```plaintext HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<InstanceName>\DTS\ ``` - 添加一个新的字符串值 `Use32BitRuntime`,并将其值设置为 `1`。 #### 3. 检查是否启用 .NET Framework 的 32 位支持 在某些情况下,即使安装了正确的驱动程序,仍可能遇到问题。这可能是由于未启用 .NET Framework 的 32 位支持。可以通过以下步骤启用: - 打开服务器管理器。 - 转到“功能”部分,选择“添加角色和功能”。 - 在功能列表中找到并勾选“适用于 IIS 的 .NET Framework 3.5 功能”以及“Windows Process Activation Service”下的“32 位应用程序支持”[^3]。 #### 4. 验证驱动程序是否已正确注册 运行以下 PowerShell 脚本来验证 Microsoft.ACE.OLEDB.16.0 是否已正确注册: ```powershell Get-OleDbDataProvider | Where-Object { $_.InvariantName -eq "Microsoft.ACE.OLEDB.16.0" } ``` 如果未返回任何结果,则说明驱动程序未正确注册。此时可以尝试重新安装 Microsoft Access Database Engine[^4]。 #### 5. 使用替代提供程序 如果仍然无法解决问题,可以考虑使用替代的 OLE DB 提供程序,例如 `Microsoft.Jet.OLEDB.4.0`(适用于旧版文件格式)。需要注意的是,此提供程序仅支持 Excel 和 Access 的旧版文件格式(如 `.xls` 和 `.mdb`),不支持较新的 `.xlsx` 或 `.accdb` 文件格式[^5]。 ### 示例代码 以下是一个使用 `Microsoft.ACE.OLEDB.16.0` 连接 Excel 文件的示例连接字符串: ```csharp string connectionString = "Provider=Microsoft.ACE.OLEDB.16.0;Data Source=C:\\path\\to\\file.xlsx;Extended Properties=\"Excel 12.0 Xml;HDR=YES\""; ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值