问题标签 [writefile]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3345 浏览

delphi - 串口 WriteFile() 冻结

我有一个简单的应用程序,它应该每分钟向串行端口发送一个字节。但有时,出于某种奇怪的原因,它会在 WriteFile() 函数的某个位置冻结。sw 和 hw 流量控制均已关闭。我已经搜索了一些关于从另一个线程执行的挂起读取操作的内容,但我相信这不是问题,因为我的应用程序有单线程。此外,来自 CreateFile 的句柄看起来是有效的,因此该端口不应被任何其他应用程序使用。有人遭受过这种情况吗?

0 投票
4 回答
1801 浏览

printf - sprintf() 和 WriteFile() 影响字符串缓冲区

我有一个非常奇怪的问题,我似乎无法弄清楚。不幸的是,如果不描述我的整个应用程序,我什至不确定如何描述它。我想做的是:

我的大部分代码都已实现,我可以将正确的标签代码从串行端口发送回。但是我添加了两行作为调试语句,当我试图删除它们时,它们会导致我的程序停止工作。

这些行是最底部的两行:

如果我尝试删除它们,“tagBuffer”将只存储最后一个字符作为缓冲区。与下一行相同,WriteFile()。

我认为 sprintf 和 WriteFile 是 I/O 函数,对变量没有影响。我被困住了,我需要帮助来解决这个问题。

有了这两行,我的输出如下所示:

没有它们,我发现 tagBuffer 和 buf 在任何时候都只存储最近的字符。

任何帮助都将不胜感激。谢谢。

0 投票
4 回答
1818 浏览

c++ - 将文件写入 U 盘会导致意外删除时文件损坏/锁定

我正在编写一个后台应用程序,以将文件循环复制到带有“优化以快速删除”策略集的 USB 记忆棒。但是,如果在此过程中(特别是在下面的 WriteFile() 调用中,它返回 ERROR FILE NOT FOUND)中删除了存储棒,则应用程序挂起,则驱动器将永久无法从任何其他应用程序访问,并且 PC 无法关闭/注销/重新启动等。所有正在运行的 Windows 资源管理器实例也会因此挂起。

我已将问题追溯到移除棒后进行的 CloseHandle() 调用并发生上述错误。几乎就好像 CloseHandle() 无限期地阻塞在某个地方的驱动程序中,因为棒不再存在?无论如何,如果 WriteFile() 返回 ERROR FILE NOT FOUND,我通过简单地跳过 CloseHandle() 调用来解决这个问题。但是,这会导致另一个问题,即文件每隔一段时间就会被不可恢复地损坏,修复它的唯一方法是使用 chkdsk 或重新格式化存储棒。

请注意,这只发生在 XP(SP2 和 3)上,Vista 似乎没有遇到此问题。代码片段如下:

我已经尝试了 CreateFile() 的几乎所有标志组合都无济于事。有没有人以前见过这个或有任何好主意如何避免发生这两个问题中的任何一个。我看到的驱动程序问题是否已在 vista 下静默修复?

谢谢你的帮助。

0 投票
1 回答
8059 浏览

cocoa - 将 NSMutableArray 写入可可文件的问题

一个真正的初学者问题。我有一个 NSView 子类,我在其中创建了一个包含 NSValues 的 NSMutableArray。当我想使用 writetofile 将数组写入文件时:自动:文件已创建,但它不包含可变数组包含的任何 NSValue。有谁知道我如何成功地将这个可变数组写入文件?

谢谢

0 投票
3 回答
875 浏览

c++ - 将文件保存到网络

我有一个大约 7 MB 的文件,可以在几秒钟内保存到我的本地共享中。但是,将该文件保存到网络位置需要几分钟。我想知道我能做些什么来加快这个速度。这是我目前的选择:

  1. 将数据保存到本地计算机上的临时文件中,然后将临时文件复制到网络路径。我可能会这样做,因为这是最简单且最划算的。
  2. 使用SetFilePointerEx()SetEndOfFile()。根据这个问题的答案,我认为这可能很有用:在 Windows 上创建大文件
  3. 缓冲区写入。我可以自己缓存写入数据并在缓冲区已满时刷新,但这与操作系统已经完成的缓存不是多余的吗?

#1 似乎是最好的选择,但我想知道是否有人对加快保存到网络路径的更好方法有任何建议?

编辑:网络在千兆局域网上,所以速度应该不是问题。将文件复制到网络路径大约需要 1 秒。我只是注意到我们在较小的数据块上调用 WriteFile() ,然后我们可能应该这样做,因此优化更高级别的代码以编写更大的块可能会有所帮助,但速度差异仍然如此显着,这仍然是一个值得提出的问题.

0 投票
2 回答
11425 浏览

r - 关于数据框:在 R 中写入文件并命名绑定向量

我有一个看起来像这样的数据。我下面的代码只是计算一些值并将输出向量绑定到原始数​​据帧。

关于上述问题,我有几个问题:

  1. 但是为什么上面的'write()'函数会给出这个错误。有没有办法解决它?

    cat(list(...)、file、sep、fill、labels、append) 中的错误:参数 1(类型 'list')不能由 'cat' 处理调用:write -> cat 执行停止

  2. 数据框中绑定向量的名称被添加为所有 10 个新列的“errprob”。有没有办法将它们命名为“errprob1”、“errprob2”等?

0 投票
3 回答
715 浏览

c# - 为什么 .NET 不能在内部清除错误?

我正在运行以下场景:

pass 是错误的,但可以预料,因为我正在运行重叠。
问题是 Marshal.GetLastWin32Error() 不返回 ERROR_IO_PENDING 它返回 ERROR_ALREADY_EXISTS。这对我来说很奇怪,因为当我创建文件时错误并没有显示,但是当我写它时出现了。现在我试图弄清楚如何关闭我似乎无法访问的句柄,或者至少得到一个关于为什么会发生这种情况的解释。

编辑:好的,我已经解决了问题,我知道是什么导致了问题。

显然,AppendAllText 调用在内部创建了一个错误。我应该在此日志调用后重置错误吗?我想知道框架不会在其函数的内部工作中重置低级调用会很有帮助。啊,你每天都学到新东西。

我想我的新问题是,我应该在这个调用之后重置低级错误,还是有其他方法来记录输出(不使用像 log4Net 这样的 3rd 方工具或对 Debug.Trace 输出感兴趣)?基本上以某种方式打开一个不影响 Marshal.GetLastWin32Error(); 的附加文件;输出。

0 投票
6 回答
10861 浏览

c++ - Unable to write file in C++

I'm trying to to the most basic of things .... write a file in C++, but the file is not being written. I don't get any errors either. Maybe I'm missing something obvious ... or what?

I thought there was something wrong with my code, but I also tried a sample I found on the net and still no file is created.

This is the code:

I've also tried creating the file manually beforehand, but it's not updated at all.

I'm running Windows 7 64bit if that has got something to do with this. It's like file-write operations are completely forbidden and no error messages or exceptions are shown.

0 投票
4 回答
13724 浏览

c# - WriteFile vs TransmitFile 用于传输后需要从服务器中删除的大文件

我必须触发用户将大文件下载到网络浏览器,在那里我创建要在服务器上传输的文件,然后立即将其删除。我已经找到了足够多的示例来了解我可能应该使用 Response.TransmitFile 或 Response.WriteFile... 但听说两者都存在问题:

WriteFile 是同步的,但它在将文件发送给用户之前将其缓冲在内存中。由于我正在处理非常大的文件,这可能会导致问题。

TransmitFile 不在本地缓冲,所以它确实适用于大文件,但它是异步的,所以我在调用 TransmitFile 后无法删除文件。显然刷新文件并不能保证我也可以删除它?

处理这个问题的最佳方法是什么?

还有 BinaryWrite ......我可以遍历文件流,分段复制它吗?

0 投票
2 回答
5052 浏览

windows - 简单的邮槽程序不起作用?

使用此处找到的客户端和服务器示例:http: //www.winsocketdotnetworkprogramming.com/winsock2programming/winsock2advancedmailslot14.html使用 VS2008 编译它们,运行服务器,然后运行“客户端 Myslot”,我不断收到“WriteFail failed with error 53”。有人有想法么?也欢迎提供其他 Mailslot 示例的链接,谢谢。

服务器:

客户: