草庐IT

hard-drive

全部标签

python - 在 Python 中更改字母后检测外部硬盘驱动器

我正在编写一个Python程序来扫描和跟踪多个外部硬盘驱动器上的文件。它将文件路径作为字符串保存在本地文件中。问题是有时当我将外部硬盘插入不同的计算机时,盘符会发生变化,并且之前存储的路径将无用。我想跟踪驱动器并更改本地记录,如果插入相同的硬盘驱动器但盘符已更改。现在,我能想到两种可能性:在驱动器的根目录中保留一个标识文件并扫描所有驱动器号以检测具有正确标识文件的驱动器。扫描开头的所有字母以检测与本地记录相同路径中的文件。如果找到,请识别驱动器。我想知道是否有任何类型的现有HDD(或分区)标识可用于访问驱动器(盘符除外)? 最佳答案

Python 2.7.x 压缩文件 : slow unzip from network drive (Windows)

我在stackoverflow社区的帮助下编写了一个小脚本来解压缩存档。我目前面临的奇怪问题是解压前的大型zip文件(例如1GB或更大)被下载(?)本地到计算机,并且只有在解压之后才开始解压。我的脚本是:#!/usr/bin/envpython2.7#coding=utf-8importosimportsysdefunpack_zip(zip_file,to_dir):ifsys.platformin('darwin','linux2'):unpack=os.system('unzip%s-d%s'%(zip_file,to_dir))ifunpack!=0:returnFalsere

windows - 为什么在使用 OS 和磁盘缓冲区写入文件后读取操作要快得多?

我正在使用CreateFile()和WriteFile()依次将大约100个大小为50MB的文件写入磁盘上的一个目录。在第二步中,使用CreateFile()和ReadFile()读取这些文件的内容。我注意到一些部分奇怪的事情:如果我通过FILE_FLAG_NO_BUFFERING|FILE_FLAG_WRITE_THROUGH写入文件时,读取需要很长时间(通常为数百毫秒)。但是,当我不传递这些标志时(而是使用FlushFileBuffers()),写入似乎以大致相同的速度发生,但写入后读取这些文件的速度非常快(每次少于20毫秒)文件!)。这怎么可能?写入5000MB数据时传递的标志如

linux - cygwin/dev/sd* 磁盘与硬盘的关联

在Windows7的cygwin下,如何确定Windows中/dev/sd*路径对应的硬盘?例如给定cygwin路径/dev/sdc,它对应的是哪个Windows盘符,C:\,D:\等等?以下在cygwin中不可用;工具lshw,工具parted,路径/dev/disk/...。 最佳答案 假设您询问如何将Windows磁盘映射到设备:$cat/proc/partitionsmajorminor#blocksnamewin-mounts80175825944sda81175824896sda1C:\8161953514582sdb8

c++ - Windows/C++ : How do I determine the share name associated with a shared drive?

假设我有一个驱动器,如C:\,我想知道它是否共享以及它的共享名称(例如C$)是什么。要查明它是否共享,我可以使用NetShareCheck.然后如何将驱动器映射到它的共享名?我以为NetShareGetInfo会这样做,但看起来它采用共享名称而不是本地驱动器名称作为输入。 最佳答案 如果一切都失败了,你总是可以使用NetShareEnum并调用NetShareGetInfo在每个。 关于c++-Windows/C++:HowdoIdeterminethesharenameassociat

windows - 直接控制 ATA 命令

我是做硬盘分析的,想知道windows下有没有直接控制ATA硬盘的方法。简而言之,我想做一些类似于数据包嗅探器的事情,但用于发送到硬盘驱动器/从硬盘驱动器发送的ATA命令。在那之后,我希望能够直接在驱动器上写入ATA命令。如果这在Windows下是不可能的,那么Linux是第二选择。第三种选择是制作一个FPGA,在PC控制下完成所有这些工作。关于这是否可以通过标准API实现,有什么想法吗? 最佳答案 在Windows上你可以使用IOCTL_ATA_PASS_THROUGH_DIRECTioctl将任意ATA命令传递到驱动器。

c++ - Windows XP中如何判断一个驱动器是否支持硬链接(hard link)?

我找到了以下解决方案来确定驱动器是否支持硬链接(hardlink):CStringstrDrive=_T("C:\\");DWORDdwSysFlags;if(GetVolumeInformation(strDrive,NULL,0,NULL,NULL,&dwSysFlags,NULL,0)){if((dwSysFlags&FILE_SUPPORTS_HARD_LINKS)!=0){//Hardlinkscanbecreatedonthespecifieddrive.}else{//Hardlinkscannotbecreatedonthespecifieddrive.}}然而,根据M

windows - 以编程方式复制文件夹而不解析 Windows 中的硬链接(hard link) (Win32 API)

我想复制整个文件夹而不解析硬链接(hardlink)例子:Folder1|+---File1File2HardLink3->File3(使用fsutilhardlinkcreate或mklink创建的HardLink3)我要复制这个文件夹到Folder2|+---File1File2HardLink3->File3将Folder2\HardLink3保持为指向File3的硬链接(hardlink)是否有Win32API调用来复制整个文件夹这种语义,或者,如果我需要做CopyFile/CreateHardLink逐个文件,检查给定文件是否存在的API调用是什么是否是硬链接(hardlin

Java nio 监视服务 : Watch Windows drives list

我想在连接USB驱动器时收到通知。所以java说:“驱动器H:已创建”。有没有办法用WatchService做到这一点?看根目录是行不通的。它只监视当前驱动器的根目录:Paths.get("/").register 最佳答案 您不能使用WatchService来做到这一点。由于您只担心Windows,您可以简单地轮询FileSystem.getRootDirectories并检测变化。try{Listroots=asList(FileSystems.getDefault().getRootDirectories());for(;;)

python 3.3 : Unable to load an image using Pygame if game folder is not in C drive

有没有一种方法可以使用“pygame.image.load”在Pygame中传递参数,而源文件夹不必位于C驱动器中,或者脚本和图像必须位于C驱动器中?我已经尝试了很多不同的事情,并且花了这个周末的大部分时间来弄清楚。我搜索了其他stackoverflow问答,但一无所获。我试过用“os.path.join”、“os.path.normpath”之类的,还是没弄明白。代码如下:importos,pygameload_image=pygame.image.load(os.path.join('\\test','energy.png'))只要“test”文件夹位于C:\,它就可以正常工作,但