草庐IT

PHP - HTTP header 中的文件名 : Problem with whitespaces

使用CakePHP和JavaWebStart我在Controller中生成必要的.jnlp文件,其中我将文件名设置为标题字段。只要我不尝试在文件名中使用特殊字符,它就可以正常工作。但是,我想在主要操作系统上启用每个可能的字符作为文件名。所以我尝试做的是通过用空字符串替换它们来删除所有无效字符。但是文件名中应该允许的空格似乎存在问题。这是代码:$panel_id=1$panelname='whitespaces';$filename=sprintf('"Project_%d_%s.jnlp"',$panel_id,$panelname);$invalid_chars=array('','

c++ - 根据字体句柄获取字体文件名 (HFONT)

我遇到过这样一种情况,我们需要知道QFont当前使用的字体的文件名。.知道一个QFont可以给我们字体系列和WindowsHFONT处理。字体系列是不够的,因为像Bold这样的操作样式或Italic会导致Windows选择不同的字体文件。(例如arial.ttf、arialbd.ttf、arialbi.ttf、ariali.ttf)。这段代码示例应该给我们\arial.ttf:QFontfont("Arial",12);FindFontFileName(font.handle());虽然这段代码示例应该给我们\arialbi.ttfQFontfont("Arial",12);font.

windows - 如何安全地将文件名附加到 Windows 文件夹路径参数?

假设我有一个批处理脚本,需要参数%1中的文件夹路径。我想将文件名附加到路径并在命令中使用它。有没有一种在所有情况下都可靠的简单方法来做到这一点?我不想PUSHD%1并在之后忽略该路径。假设我的逻辑要求当前目录保持不变。问题是%1参数可能有也可能没有终止反斜杠-即c:\path或c:\path\.通常我可以简单地使用"%~1\file.ext"因为Windows对待"c:\path\file.ext"和"c:\path\\file.ext"相同。但有一种情况很糟糕-c:\以下命令会产生此错误:文件名、目录名或卷标语法不正确。dir"c:\\file.ext"del"c:\\file.ex

windows - 当我尝试在 Windows Server 2008 中上传二进制文件时,LibCURL 发送文件名而不是文件内容

我在使用libCURL时遇到了这种奇怪的行为。当我尝试通过将“@”附加到文件名的开头来上传文件时(如libCURL的手册页中所述),而不是上传文件内容,libCURL发送文件名本身(开头为@)。这是在Windows2008R2上运行的,xampp版本5.6.8,其中编译了curl(curl版本7.40.0)。这里是相关的代码片段:$post['pic']="@C:\\image.png";$ret=curl_setopt($ch,CURLOPT_POST,TRUE);if(!$ret)die("curl_setoptCURLOPT_POSTfailed");$ret=curl_seto

java - 如何使用 Java 在 Windows 中获取短文件名?

如何使用Java在Windows中获取长文件名的短文件名?我需要使用Java(tm)确定存储在Windows系统上的文件的短文件名。 最佳答案 自答相关问题有相关答案。然而,我发布了这个解决方案,因为它使用Java(tm)代码而不需要外部库。欢迎为不同版本的Java和/或Microsoft(R)Windows(tm)提供其他解决方案。主要概念主要概念在于通过运行时类从Java(tm)调用CMD:cmd/cfor%Iin("[longfilename]")do@echo%~fsI解决方案在Windows7系统上运行JavaSE7测试(

windows - 如何克隆文件名中带有冒号的文件

当我使用msysgit克隆repo时,所有文件名中带有空格的文件都没有被删除,然后在状态中显示为已删除。文件名看起来像这样:styles-ie(1:12:116:02PM).css所以它实际上可能是冒号或括号?我如何获取这些文件以使我的本地存储库与源内联? 最佳答案 好消息。从技术上讲,“如何克隆文件名中带有冒号的文件”的答案是简单地使用“gitclone”。幸运的是,只有在Windows上(即使在msysgit下)失败的checkout才会失败,下面显示了一个相当干净的解决方法。TL;DR在GitBash中...gitclone{

windows - 如何在 Windows 中解析规范文件名?

如果我有一个在Windows中解析为文件路径的字符串,是否有一种可接受的方法来获取文件名的规范形式?例如,我想知道是否C:\stuff\things\etc\misc\whatever.txt和C:\stuff\things\etc\misc\other\..\whatever.txt实际上是否指向同一个文件,并将路径的规范形式存储在我的应用程序中。请注意,简单的字符串比较是行不通的,任何RegEx魔术也行不通。请记住,我们有类似NTFSreparsepoints的东西处理自Windows2000和Windows7中的新库结构。 最佳答案

c++ - 使用非 MSVC 编译器在 Windows 下打开带有 Unicode 文件名的文件的 fstream

当文件名为“Unicode”文件名时,我需要将文件打开为std::fstream(或实际上任何其他std::ostream)。在MSVC下我有非标准扩展std::fstream::open(wchar_tconst*,...)?我可以使用GCC(最重要的)和Borland编译器等其他编译器做什么。我知道CRTL提供了_wfopen但它提供了CFILE*接口(interface)而不是io-streams,也许有一种非标准的方式来创建io-stream文件*?是否有任何boost::ifstream带有类似MSVC的Windows扩展? 最佳答案

c++ - 是否有不搜索短文件名的 Windows FindFirstFile/FindNextFile API 的替代方法?

我正在使用WindowsAPI调用FindFirstFile和FindNextFile在目录中搜索与某个通配符字符串匹配的文件。例如,我可能想查找目录中的所有XML文件,因此我使用“*.xml”模式进行搜索。我遇到的问题是,如果我正在搜索3个字母的扩展名,并且文件的扩展名以该3个字母的扩展名开头,即使扩展名包含更多内容,它也会被我的搜索选中前3个字符之后的字符。例如,如果我的文件名为somelongname.xmlaaaa,则搜索“*.xml”时会找到它。该文件的简称是somelo~1.xml,与我的通配符字符串匹配。我可以自己进行通配符匹配来解决这个问题,但大概WindowsAPI能

c++ - 在 C++ Windows 中打开 utf8 编码的文件名

考虑以下代码:#include#include#include#includestd::stringToUtf8(std::wstringstr){std::stringret;intlen=WideCharToMultiByte(CP_UTF8,0,str.c_str(),str.length(),NULL,0,NULL,NULL);if(len>0){ret.resize(len);WideCharToMultiByte(CP_UTF8,0,str.c_str(),str.length(),&ret[0],len,NULL,NULL);}returnret;}intmain(){s