草庐IT

FileSystems

全部标签

c++ - 如何检查文件是否为常规文件?

如果文件是常规文件(而不是目录、管道等),我如何在C++中检查?我需要一个函数isFile()。DIR*dp;structdirent*dirp;while((dirp=readdir(dp))!=NULL){if(isFile(dirp)){cout我试过将dirp->d_type与(unsignedchar)0x8进行比较,但它似乎无法通过不同的系统移植。 最佳答案 您可以使用可移植boost::filesystem(直到最近在C++17中引入std::filesystem,标准C++库才能做到这一点):#include#inc

c++ - 为什么路径比较在最新的文件系统草案(C++)中区分大小写?

引自ProgrammingLanguages—C++—FileSystemTechnicalSpecificationdraftN4100:8.4.8pathcompare[path.compare]1intcompare(constpath&p)constnoexcept;2Returns:Avaluelessthan0ifnative()fortheelementsof*thisarelexicographicallylessthannative()fortheelementsofp,otherwiseavaluegreaterthan0ifnative()fortheelemen

c++ - 在 osx 上将已安装的卷识别为 CD/DVD

当你在osx上挂载任何东西时,它会显示在/Volumes/mountname下有什么方法可以使用命令行或C/C++将卷识别为CD/DVDROM?我目前最好的想法是这样的。df|grepmountname获取/dev/diskNsM路径然后drutil|grep/dev/diskN查看路径挂载的设备是否为刻录机。这可行,但我担心CD/DVD不是刻录机的情况。它还会出现在drutil的输出中吗?Mac是否配备非刻录机CD/DVD驱动器?此外,我更喜欢使用C、C++或objective-c来执行此操作。我已经在用了constchar*tmp='/Volumes/mysterydrive';s

c++ - 有没有一种符合标准的方法来用 C++ 编写可移植的 ls 实用程序?

让我们考虑以下代码,列出作为程序第一个参数给出的路径的目录内容:#include#includeintmain(intargc,char**argv){if(argc!=2)std::cerr乍一看这似乎非常精简、可移植并且符合C++标准(请忽略如果目录不存在它不会捕获异常)。但是,似乎存在一些陷阱。特别是,C++标准似乎没有强制要求argv[1]的编码与std::filesystem::path构造函数接受的编码相匹配,它似乎也没有要求std::filesystem::path::string()返回的编码与std::cout接受的编码相匹配。恰恰相反,该标准似乎引入了新术语“nat

c# - 如何读取目录和/或文件的 128 位 NTFS FILE_ID?

所以NTFS使用128位的Guid来标识文件和目录,你可以很容易地查看这些信息:C:\Temp>C:\Windows\System32\fsutil.exeobjectidquery.ObjectID:ab3ffba83c67df118130e0cb4e9d4076BirthVolumeID:ca38ec6abfe0ca4baa9b54a543fdd84fBirthObjectIdID:ab3ffba83c67df118130e0cb4e9d4076DomainID:00000000000000000000000000000000这很明显,但是如何以编程方式检索此信息呢?查看OpenF

c++ - 如何递归复制文件和目录

使用C++,是否可以递归地将文件和目录从一个路径复制到另一个路径无需使用任何额外的库?并具有独立于平台的功能?考虑以下文件系统src/fileInRootsrc/sub_directory/src/sub_directory/fileInSubdir我要复制所有文件和目录或某些文件和目录从src到另一个目录target。我创建了一个新问题,因为我发现的问题是特定于平台的,不包括过滤:C++Copydirectoryrecursiveunderunix(unix)Copydirectorycontent(Linux)C/C++Copyfilewithautomaticrecursivef

c++ - Windows 下使用 C/C++ 的虚拟文件系统

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭2年前。Improvethisquestion我目前正在开发一款模拟操作系统的游戏。因此我需要一个游戏文件系统。目前,我正在使用zziplib来从zip存档加载文件,但这是一个只读的“文件系统”,我需要一种方法来编写新文件并在之后序列化它们(并在下次执行时反序列化它们)!在野外是否有任何有用的库可供使用,或者我应该根据任何库为自己编写一个?

c++ - 在 Windows 中从文件名获取驱动器号

是否有WindowsAPI函数可以从Windows路径中提取盘符U:\path\to\file.txt\\?\U:\path\to\file.txt同时正确整理relative\path\to\file.txt:alternate-stream等等? 最佳答案 PathGetDriveNumber如果路径有驱动器号,则返回0到25(对应于“A”到“Z”),否则返回-1。 关于c++-在Windows中从文件名获取驱动器号,我们在StackOverflow上找到一个类似的问题:

c++ - 二进制文件和跨平台兼容性

我编写了一个C++库,可以将我的数据(自定义结构的集合等)保存到二进制文件中。我目前在我的Windows(XP)机器上本地使用(即创建和使用)这些文件。为简单起见,让我们将库分为两部分:编写器(创建文件)和读取器或消费者(简单地从文件)。但最近,我还想在我的Linux机器上使用(即读取)我在我的XP机器上创建的数据文件。在此阶段我必须指出两台机器都是PC(因此具有相同的endianess等)。我可以构建一个阅读器(并为Linux[准确地说是Ubuntu9.10]编译),因为我是图书馆的创建者。在我踏上这条道路(构建阅读器等)之前,我的问题是:假设我已经成功地为Linux构建了阅读器,我

ios - 通过本地网络从 iOS 设备浏览桌面文件

我目前已将我的应用程序配置为通过iTunes进行文件共享。但是,我希望能够从我的iOS设备(如FileBrowserapp)浏览我位于Mac上的文件。或FilesConnect应用程序。我知道这些应用程序结合使用了CIFS、SMB、AFP、FTP、SFTP和WEBDAV协议(protocol)。Tangoc库看起来很有希望,但我无法获得良好的连接。我尝试过使用Bonjour和cocoahttpserver库,但我认为我不需要这些来完成我想做的事情。我一直在绕圈子,我想知道是否有人可以帮助我。任何信息都会有所帮助,谢谢。 最佳答案 这