草庐IT

file-system-folder

全部标签

windows - 如何打开 File::Find 从所需函数中找到的文件?

我有如下代码。如果我在我的搜索中打开文件$File::Find::name(在本例中是./tmp/tmp.h)>函数(由File::Find::find调用),它说“无法打开文件./tmp/tmp.hreason=Nosuchfileordirectoryattemp.plline36,line98。”如果我直接在另一个函数中打开文件,我可以打开文件。有人可以告诉我这种行为的原因吗?我在Windows上使用activeperl,版本是5.6.1。usewarnings;usestrict;useFile::Find;subsearch{returnunless($File::Find:

c++ - 为什么 std::remove for file 总是返回 -1?

我正在尝试删除一个文件(如果存在)。所以首先我测试文件是否存在,如果存在我使用std::remove删除它。.test.json中包含一些json相关的txt。我还有#include包括在内。std::stringfile_to_remove="test.json";std::ifstreamf(file_to_remove.c_str());if(f.good()){intval=std::remove(file_to_remove.c_str());std::cout我原以为retval是0但我得到-1我当前的输出是:Removingfile:test.json:retval:-1

c++ - 在 C++ 中使用变量作为 system() 输入而不使用 c_str()

这不是“为什么简单的system(variable)不起作用”之类的内容的重复。解决方案是将字符串存储到可由c_str()转换的变量中,然后调用:系统(变量.c_str())不过,我正在寻找一种无需c_str()直接调用的方法。所以我试过类似的东西classsystemRunner{private:stringstreamprepareStream;public:voidsetProgram(strings){prepareStream.str("");//emptystreamprepareStream.clear();//resetstream-!IMPORTANT!prepare

regex - Perl one liner corrupts file in Windows (carriage-return related issue)

我有一个PostScript文件,我想在其中更改一行:%%Title:myabc到%%Title:yourdef下面的Perloneliner在Ubuntu中成功了:perl-p-ifoo.bak-e"s/%%Title:.+\n/%%Title:yourdef\n/"file.ps但它会破坏Windows中的文件(看起来它会将\r\n添加到每个“行”或类似的东西)。我尝试了另一种方法,但在Windows中仍然没有成功:perl-Mopen=OUT,:bytes-p-ifoo.bak-e"s/%%Title:.+\n/%%Title:yourdef\n/"file.ps这是怎么回事,我

windows - 如何避免 "Your system is running low on virtual memory"弹出窗口?

我们的应用程序有时会使用大量内存,这是预料之中的。但是当我们在WindowsXP的高负载下测试它时,我们通常会看到非常烦人的“您的系统虚拟内存不足”弹出窗口,这会阻止我们的自动化、无人值守的测试运行...有没有可能不出现这个弹窗,直接让分配失败?该应用程序将优雅地处理它,并且测试将继续......我们使用的是WindowsXP,但如果解决方案只存在于更高版本中,我很乐意知道。 最佳答案 您可能会使用一种捕获该对话并将其取消的全局对话处理程序。QTP(HPQuickTestProfessional)具有GUI异常处理程序(或者它们叫什

java - 在 Windows 7 上从 Java 启动 CYGWIN 构建的可执行文件失败并显示 "error while loading shared libraries: ?: No such file or directory"

有问题的代码在早期版本的Windows上或多或少地以完全相同的配置工作,但是,还不知道它是否可以在Windows7上运行!这就是我现在需要解决的问题。简而言之,一些C代码在启动Java程序之前执行一些配置和安全检查,传递一些在Java中几乎不可能轻松完成的数据。反过来,Java在适当的时间启动相同的C代码,然后它自己启动一个不同的Java程序。第二个程序启动需要完全独立,(想想nohup)因此是第二个启动。现在发生的事情是C程序以普通方式启动Java程序,但是当Java尝试启动C程序时,它会出现如下错误:/cygdrive/c/opt/ST/v3.3/bin/ST.exe:errorw

windows - Cakephp - 使用 Folder::cd() 更改目录(绝对 Windows 路径)不起作用

我无法借助cakephpapi中的方法Folder::cd()或FolderConstructor设置绝对窗口路径。方法调用后没有错误或消息。例子//path=C:".DS."Users".DS."User.Name".DS."Desktop".DS."Qualitätssicherung".DS."Testmanagement"$fol=newFolder($path);print_r($fol->errors());//emptyecho$fol->path;//empty我试过的其他路径定义:C:\Users\User.Name\Desktop\Qualitätssicherun

.net - FileLogTraceListener 抛出 System.IO.Exceptions

我想弄清楚为什么我们的一个遗留应用程序每天都会抛出异常。它是一个VB.NetWindows服务,它使用Microsoft.VisualBasic.Logging.FileLogTraceListener类来进行日志记录。但是,它会抛出以下异常,我无法弄清楚是什么导致了它:System.IO.IOException:Thehandleisinvalid.atSystem.IO.__Error.WinIOError(Int32errorCode,StringmaybeFullPath)atSystem.IO.FileStream.get_Length()atMicrosoft.Visual

我可以获得内存中已有数据支持的 FILE* 吗?

我的代码目前使用一个库,我将FILE*传递给该库,它使用fread()CRTAPI读取一堆复杂的配置数据。我想移动文件以成为文件中的嵌入式资源(WindowsDLL)。不幸的是,读取Windows资源会直接将数据作为void*....我无法传递给图书馆。我想要的是能够获得一个由内存缓冲区而不是磁盘上的文件支持的FILE*。Windows有CreateStreamOnHGlobal(),但它使用IStream*,我需要一个FILE*。不幸的是,我找不到适用于Windows的任何解决方案。这可能吗?我可以使用的解决方案是将资源数据写入临时文件,将临时文件传递给配置解析器,然后删除文件...

windows - Perl:停止在 Windows 中使用 perl "system"启动的命令

在Perl中,我在两个不同的windows命令行(Cmd)中启动了两个命令,如下:system("start$cmd1");system("start$cmd2");基本上,这两个命令会继续运行,直到我使用“CTRL+C”停止它们。我的问题是:如何向每个Cmd行(或命令)发送“CTR+C”?谢谢。 最佳答案 我觉得你可以用my$pid=system(1,$cmd1);#Oneofthefollowing:kill(INT=>$pid);#SendsCtrl-Ckill(TERM=>$pid);#SendsCtrl-Breakkill