当前位置: 首页 > 知识库问答 >
问题:

如何只在文件不存在的情况下创建文件

贺山
2023-03-14

在C语言中,我可以用o_creato_excl调用open来创建新文件,当且仅当当前没有同名文件时。我还没能在哈斯克尔找到这样做的方法。我更喜欢提供句柄的友好的东西,最好是为我完成所有棘手的异常处理。(我不一定期望它能正确地为我完成,但那是另一回事。)

共有1个答案

岳嘉石
2023-03-14

我认为这不能直接在base中使用,但是可以使用UNIX包中的openfd,将openfileflags记录中的exclusion标志设置为true。摘要:

openFd
  path
  WriteOnly
  (Just defaultMode)
  defaultFileFlags { exclusive = True }

这样做的结果可以使用FDToHandle转换为普通的Haskell I/O句柄。如果失败,它应该抛出IOERROR异常,(我认为)您可以使用IsalReadyExistSerror测试该异常。

在Windows上,这可以通过Win32包中的createFile完成。

createFile
  path
  gENERIC_WRITE
  fILE_SHARE_NONE
  Nothing
  cREATE_NEW
  fILE_ATTRIBUTE_NORMAL
  Nothing

然后,可以使用HandletoHandle获取常规的句柄。我不确定这里的错误处理是如何工作的;您可能需要根据nullptr检查句柄并调用GetLastError以获取错误信息。

 类似资料:
  • 我想提取Unix tar xvf/home/test/group中的tar文件。tar和提取后得到一个文件夹组,其中包含xls、pdf和txt文件列表。 我怎样才能提取内容的group.tar /home/test/list的xls, pdf文件没有创建组文件夹。 任何特定的命令可用或必须跟随复制和移动?? 谢啦!

  • 在CSV文件中写入时,会自动创建文件夹,然后创建具有神秘名称的csv文件,如何使用任何特定名称创建此CSV,但无需在pyspark而不是熊猫中创建文件夹。

  • 本文向大家介绍Java如何在不存在文件夹的目录下创建文件,包括了Java如何在不存在文件夹的目录下创建文件的使用技巧和注意事项,需要的朋友参考一下 核心代码如下所示: 1、 2、 总结 以上所述是小编给大家介绍的Java如何在不存在文件夹的目录下创建文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站的支持!

  • 我正在尝试使用以下步骤在Ruby中创建一个. rb文件: 这将创建一个名为“a”的文件,该文件工作正常;然而,当我将该文件重命名为.rb时,它会立即将该文件转换为文本文件。这是为什么? 我一直在创建文件,从一开始就创建了一个新文件,并将其命名为“< code>a.rb”,它会自动将其关联到一个ruby文件。现在,它只是将命名关联到一个文本文件,我必须去掉< code >。rb并在以后手动分配文件类

  • 问题内容: 我在图标中列出了一些文件名及其图标(例如Windows资源管理器中的图标)。我知道从本地文件系统中获得对象的两种获取图标的方法: 16x16或更大的图标: 由于我的文件存储在数据库中,因此没有对象。我的解决方法是创建一个具有特定文件扩展名的临时文件,使用上述两种方法之一,并缓存图标以在CellRenderer中显示它。 我搜索了没有临时文件的解决方案,发现两个我都不喜欢的文件: ,但我