草庐IT

file-locking

全部标签

windows - 如何在 Windows 中获取文件夹的进程独占锁?

是否可以在Windows中锁定一个目录,以确保在锁定期间没有其他进程正在读取或修改目录内的文件,同时允许有锁的进程修改和移动文件和目录本身是否自由? 最佳答案 这不是真正的答案,而是一种解决方法:将目录移动到特定于您的应用程序的子目录,该子目录位于同一卷上。优点:防止用户和其他程序修改旧位置的文件,因为文件将不再存在重要的是,如果一个进程已经在该目录中打开了一个文件,将会失败,从而确保“获得的”锁确实是“独占的”缺点:这是一个技巧软件将需要进行调整以使用与最初所在路径不同的目录尝试访问文件的用户和程序将遇到异常行为或错误(“找不到路

c++ - 在 windows7 : "no such file or directory" 上使用 mingw32 编译 Qt 4.8.5

我正在尝试在Windows7上使用mingw32编译器从源代码构建qt-4.8.5(开源)。“配置”工作正常,但编译(mingw32-make)失败并显示以下输出:D:\development\qt-4.8.5-mingw>mingw32-makecdsrc/tools/bootstrap/&&D:/development/MinGW/bin/mingw32-make.EXE-fMakefilemingw32-make.EXE[1]:Enteringdirectory'd:/development/qt-4.8.5-mingw/src/tools/bootstrap'D:/develo

windows - Windows 上的 SQLite DB 像互斥锁一样锁定且无需轮询

我有以下情况:一个进程正在从SQLite数据库中读取数据。另一个进程正在更新数据库。更新不会经常发生,所有交易都很短。(平均小于0.1ms)正在读取的进程对于查询应该具有低延迟。(大约0.1毫秒)如果SQLite的锁定像互斥锁或读写锁一样工作,一切都会好起来的。来自阅读http://www.sqlite.org/lockingv3.html这应该是可能的。SQLite正在使用LockFileEx(),有时没有LOCKFILE_FAIL_IMMEDIATELY,这会阻止调用根据需要进行处理。但是我不知道如何使用/配置SQLite来实现此行为。使用忙处理程序会涉及轮询,这是NotAccep

Windows 中的 java.io.IOException : The process cannot access the file because another process has locked a portion - when using IOUtils. copyLarge()

问题源于此tryblock中的特定代码行:try{fInputStream=newFileInputStream(path);#thisLinebyteCount+=IOUtils.copyLarge(fInputStream,fOutputStream);fileCount++;}堆栈跟踪看起来像这样:java.io.IOException:Theprocesscannotaccessthefilebecauseanotherprocesshaslockedaportionofthefileatjava.io.FileInputStream.readBytes(NativeMetho

Windows 命令行 : open file with active process?

我希望能够理想地告诉事件进程使用Windows命令行打开文件——但任何使用内置Windows(7+)功能(例如powershell或vbscript)的解决方案也可以。例如,如果我打开了一个记事本实例并且知道它的processid是1234,那么能够执行如下操作会很棒:notepad.exe"myfile.txt"/pid=1234并让记事本尝试在现有进程的窗口中打开文件。这可能吗? 最佳答案 你应该为此使用Autohotkey。虽然这也可以在powershell中完成,但它比在专用工具中复杂得多。在AHK中,您将模拟打开文件(通常

java - 在 java 中移动目录会抛出 java.nio.file.FileAlreadyExistsException

我正在创建一个回滚功能,这是我想要实现的:在与data文件夹相同的位置创建一个tmp文件夹;在执行任何操作之前,我将所有内容从data文件夹复制到tmp文件夹(少量数据)。回滚时我想删除数据文件夹并将重命名tmp文件夹到数据文件夹.这是我试过的StringcontentPath="c:\\temp\\data";StringtmpContentPath="c:\\temp\\data.TMP";if(Files.exists(Paths.get(tmpContentPath))&&Files.list(Paths.get(tmpContentPath)).count()>0){File

python - IDLE 无法打开 .py 文件,它提示 "The file' 的编码对于 Python 3.x 无效。”

我在cmd中使用命令scrapystartprojecttutorial,它创建了一些文件,但是这些文件不能被IDLE打开。它暗示:Thefile'sencodingisinvalidforPython3.x.IDLEwillconvertittoUTF-8.What'sthecurrentencodingofthefile?截图如下:是什么原因,如何解决? 最佳答案 如果您确定在使用IDLE打开这些文件之前没有手动编辑它们的内容,则原因可能是一个错误。那样的话,请openabugreportaboutit,最好详细说明重现问题的所

windows - Jekyll 服务转换错误 "No such file or directory"

我关注了installationinstructionsforWindows,使用“rouge”语法荧光笔。我用“jekyllnew”创建了新站点并更改为该文件夹。但是,当我尝试运行“bundleexecjekyllserve”时,出现以下错误,我用谷歌搜索却没有结果。Generating...JekyllFeed:GeneratingfeedforpostsConversionerror:Jekyll::Converters::Scssencounteredanerrorwhileconverting'assets/main.scss':Nosuchfileordirectory@r

.net - 'assembly purgatory' 发生了什么?

当一个.NET程序集被部署到GAC并且目标文件被锁定时,Windows将它保存在我最能猜测是某种“程序集炼狱”的地方-c:\windows\assembly\temp.使用ProcessExplorer在搜索可疑DLL时可以很容易地看到这些:(来源:alexangas.com)一旦我结束进程锁定文件(在本例中为OWSTIMER.EXE),它就会神奇地正确部署到GAC。我很好奇Windows在这里实际做了什么。它如何知道文件锁何时被释放?它在哪里保存锁定文件的记录?它会放弃吗? 最佳答案 Temp和tmp是GAC程序集安装和卸载期间使

c# - Windows 上的 OpenVPN --auth-user-pass FILE 选项

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭5年前。Improvethisquestion如果您尝试通过--auth-user-pass开关将用户名/密码从文件传递到OpenVPN,您会收到以下错误:"Sorry,'Aut