草庐IT

windows - 我应该将临时文件写入临时目录吗?或将临时文件写入最终目录?

当应用程序保存文件时,典型的模型是将文件保存到临时位置,然后将临时文件移动到最终位置。在某些情况下,“移动”变成了“替换”。在伪代码中:Savetempfile;iffinalfileexistsdeletefinalfile;movetempfiletofinalfilename;那里有一个窗口,删除可能会成功,但移动可能不会,所以你可以通过类似的方式处理它:Savetempfile;iffinalfileexistsmovefinalfiletoparkinglotmovetempfiletofinalfilename;ifmovesucceededdeletepreviousfi

c++ - Windows UAC 设置为始终通知时无法写入注册表

我有一个C++应用程序,我们在其中将设置写入注册表(在我的应用程序的HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE下)。当Windows用户访问控制设置为始终通知时,RegCreateKeyEx方法返回访问被拒绝并且它不会写入HKEY_LOCAL_MACHINE但它在HKEY_CURRENT_USER注册表中成功写入。我正在使用这种方法来写:lRet=RegCreateKeyEx(m_hSWRootKey,LPCTSTR(strKey),0,_T(""),m_dwCreationFlag,KEY_WRITE|KEY_READ,NULL,&hKey,&Dispo

windows - 写入 CPU 寄存器实际上是如何工作的?

当写入一个寄存器时,比如movax,1,它会覆盖它之前可能拥有的值。现在我想知道的是,我可以将多大的数字/字符串输入寄存器,并且另一个应用程序可以覆盖我的应用程序的寄存器值吗?我的意思是,寄存器是在进程之间共享,还是它们接收自己的沙盒/虚拟寄存器?我对Intelx86(-64)核心CPU和Windows很感兴趣。 最佳答案 在单个内核上一次只能调度一个线程。核心是有寄存器的东西。调度新线程时,首先保存寄存器,恢复线程之前保存的寄存器。这包括程序计数器寄存器,它指向下一条要执行的指令。寄存器(来自内存):AX、BX、CX、DX是16位

c# - 当方法的新实例运行 C# 时,以前的方法仍在将数据写入文本文件

我目前面临一个问题,我有一个方法可以查询服务器的特定端口并将结果写入名为temp.txt的文本文件。Temp.txt中不应该有任何重复数据-在方法开始之前文件应该是清晰的,尽管有时我发现该方法的前一个实例仍在运行(因为它是异步的)并且我经常得到重复数据,因为另一个方法仍在写入文件/执行查询。代码片段:StreamWritersw=File.AppendText("temp");sw.WriteLine("Check1=Success");sw.Close(); 最佳答案 您可以实现某种lockLockensuresthatoneth

.net - 在 .NET 中写入日志 - 权限问题

我需要在.NETWindows应用程序中写入一些日志文本,然后将该文本显示给用户。我对创建日志文件的位置没有具体要求。最初我将日志文件写在与应用程序相同的文件夹中,但在某些计算机上,应用程序用户没有创建文件的权限...是否有一种机制可以在具有最低用户权限的某处创建日志(文本)文件? 最佳答案 可以写入当前用户applicationdata目录。用户应该在那里拥有完全权限。您可以使用请求路径(在.NET中)Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicat

java - 将多行写入 java 中的新文件?

当我在jGRASP中打开新写入的文件时,它包含很多行文本。当我在记事本中打开同一个文本文件时,它包含一行具有相同数据的文本。transFile只是我正在制作的文本文件名称的一个变量。FileWriterf=newFileWriter(transFile,true);BufferedWriterout=newBufferedWriter(f);out.write(someOutput+"\n");out.close();f.close();我已将代码更改为以下代码,并修复了记事本中的问题。out.write(someOutput+"\r\n");为什么会这样?

windows - Powershell:如何在一行中输出文件夹名称、上次写入时间和文件夹大小?

我想输出文件夹名称、上次写入时间和文件夹大小,如何将这两个结果合并到一行?对于文件夹名称和上次写入时间:get-item"\\server-01\Y$\Server1"|selectname,lastwritetime对于文件夹大小:$folder=(Get-ChildItem"\\server-01\Y$\Server1"-recurse|Measure-Object-propertylength-sum)$size="{0:N2}"-f($folder.sum/1024MB)+"GB"我需要这样的输出格式:NameLastWriteTimeSizeServer12014-05-05

c++ - WriteFileGather - 写入大文件(大于 4 GB)的方法是什么?

我正在使用windwosxp,我想将数据(每次大约4MB)附加到一个文件中。使用“WriteFileGather”,我一直增加重叠结构的偏移值。由于系统调用是32位的,偏移值(DWORD)不能超过4GB值。代码示例:LARGE_INTEGERsize;if(!GetFileSizeEx(_hFile,&size)){return;}overlapped.Offset=size.QuadPart;使用ftell和fseek对我不起作用。显然,“WriteFileGather”需要分配overlapped.offset值。突破4G限制的方法是什么? 最佳答案

java - CMD:如何将 java -version 的结果写入/打印到某个文件

我尝试执行:cmd/cjava-version>someFile.txtcmd/cechojava-version>someFile.txt但是我重定向到的文件中没有任何内容。 最佳答案 捕获stderr而不是stdout:java-version2>someFile.txtjava-fullversion2>someFile.txtcmd/cjava-version2>someFile.txtThis解释为什么Java将帮助写入stderr:Weshouldthinkvery,verycarefullybeforeeverfixi

C++ 打开一个文件并写入文件的任意位置

我需要打开一个现有文件并写入到该文件的任意位置。同样位于可能大于文件当前大小的位置。每次调用写入操作时,使用“ab”打开文件会将位置指示器设置为文件末尾-这样就不起作用了。用"w+b"或"wb"打开文件会导致文件被多次写入(复制?)。Filesize多次从0开始-这需要很长时间。查看执行以下测试(运行1次)时发生的情况的视频:http://screencast.com/t/Uj5ymikZUYJBOOST_AUTO_TEST_CASE(FileWriteTest_W_PLUS_B){autostarted=chrono::high_resolution_clock::now();FIL