使用java恢复FAT32中删除的数据?
是否可以使用Java从FAT32中恢复已删除的数据? 非常感谢. ps:是否有免费资源? 解决方案 请查看以下链接: 从fat32(a) 中恢复已删除的数据 Windows中恢复已删除的数据 其他解决方案 Java不是这样做的正确工具.
2 2024-02-10
编程技术问答社区
无法正确读取安卓设备上FAT32 USB驱动器的启动扇区
我正在尝试从Android设备上的FAT32驱动器读取引导扇区,但是我得到的数据与我的期望完全不同. 这是我在Android设备上读取端点上使用Bulktransfer接收的输出. 33C08ED0BC007C8EC08ED8BE007CBF00 06B90002FCF3A450681C06CBFBB90400 BDBE07807E00007C0B0F850E0183C510 ... 656D000000637B9A5BE2B3D70000800F 30000BFEFFF4E0030000205CF8000000 00000000000000000000000000000000 00000000000000000000000000000000 000000000000000000000000000055AA 这是我的PC上倾倒与十六进制查看器的引导扇区. EB58904D53444F53352E300002081004 0200000000F800003F00FF0
2 2024-02-10
编程技术问答社区
SD卡上一个目录中的文件数量是否有限制?
我有一个为Android设备编写的项目.它每天都会生成大量文件.这些都是文本文件和图像.该应用使用数据库引用这些文件. 该应用程序稍作使用后应该清除这些文件(也许几天后),但是此过程可能会或可能无法正常工作.这不是这个问题的主题. 由于历史性的事故,文件的组织有些天真:一切都在同一目录中; a .hidden目录,其中包含一个零字节.nomedia文件以防止媒体安全索引. 今天,我看到一个错误报告: java.io.IOException: Cannot create: /sdcard/.hidden/file-4200.html at java.io.File.createNewFile(File.java:1263) 关于sdcard,我看到它剩下大量存储空间,但是计算 $ cd /Volumes/NO_NAME/.hidden $ ls | wc -w 9058 删除许多文件似乎允许今天的文件创建. 遗憾的是,我没有尝试touch在命
0 2024-01-29
编程技术问答社区
如何通过C++访问硬盘的文件系统和扇区?
如何读取硬盘驱动器的扇区,访问文件系统以及文件的块或群集,不良块(FAT)或集群文件(NTFS)的列表?或访问自由块(FAT)或集群位图(NTFS)的列表? 解决方案 您可以使用CreateFile API来指定特殊文件名(例如"\\.\PhysicalDrive0")来打开物理磁盘 - 请参阅 createfile msdn文档.. 虽然非常小心,尤其是在写操作的情况下 - 您可以以这种方式轻松丢弃整个系统. 其他解决方案 检查脂肪引导扇区: 从引导扇区提取软盘几何形状
2 2023-12-06
编程技术问答社区
在Windows上设置Mercurial'的执行位
我在一个账户存储库上工作,该存储库已在某些机器上签到的Unix文件系统(例如Ext3),而在其他机器上进行了FAT32. 在Subversion中,我可以设置SVN:可执行属性,以控制在支持此功能的平台上检查文件是否应标记为可执行文件.无论我在上面运行的SVN或包含我的工作副本的文件系统. ,我都可以这样做. 在Mercurial中,如果克隆在Unix文件系统上,我可以获得相同的效果.但是如何在胖文件系统上的文件上设置(或删除)可执行的位? 解决方案 Mercurial将执行位跟踪是文件METDATA的一部分.无法在Mercurial中进行解释,但它跟踪了Unix上chmod的更改. Windows上添加的文件将默认设置执行位,但是Windows Attrib命令不允许您设置它们. 如果您执行hg log -p --git您会看到显示执行位更改的补丁格式,看起来像这样: $ hg log --git -p changeset: 1:0d9a70aad
6 2023-12-06
编程技术问答社区
FAT-32上的Unicode文件名?
据我了解, NTFS支持Unicode文件名(UTF -16作为Micorsoft声称?). 但是,官方的MSDN文档对于使用哪种代码来存储FAT-32上的文件名(filepaths)非常模糊. 在这里说 OEM代码页(cp437 i Paus)用于存储文件名: http://msdn.microsoft.com/en-us/library/windows/desktop/dd317748.aspx ,但是在这里,事实证明, oem codepages cp437是其中之一: http://msdn.microsoft.com/en-us/library/windows/desktop/dd3177752.aspx ,我们现在所有人都在 sount 之类的公用事业支持脂肪的更多不同的编码,而不仅仅是OEM CodePages设置. 那么,Fat-32文件名的实际CDEPAGE是什么?这取决于在创建脂肪体积时的系统代码吗?脂肪支持真正的双字节字符集诸如UTF-1
14 2023-12-06
编程技术问答社区
Raspberry Pi上FAT32 U盘的默认文件权限
当我将已格式为FAT32格式的USB棒/Thumbdrive插入Raspberry Pi(运行RaspBian)时,文件权限默认为644,我无法更改它们. 我需要将棍子作为fat32留下 我已经使用UDEV编写了一条规则,但我无法正常工作. 我的UDEV规则看起来像这样: # Set up any USB stick for full write access KERNEL=="sd?1", MODE="0777" 我确定该规则正在被触发,因为我将其重命名为设备.它正在设置设备本身的权限,而不是设备上的单个文件. 我最终试图实现的是能够从php中写入USB棒的能力. 我觉得我非常接近答案,但看不到我缺少什么. 解决方案 解决问题 - 几个小时后,我的Linux Guru朋友Jox的建议. 它有些参与,可能有一种更简单的方法 - 很高兴听到它. 1)disble GUI又禁用了自动启动. (无论如何,PI都在运行无头). 2)
2 2023-11-10
编程技术问答社区
Unix时间戳转为FAT时间戳
我试图将时间结构转换为胖时间戳.我的代码看起来像: unsigned long Fat(tm_struct pTime) { unsigned long FatTime = 0; FatTime |= (pTime.seconds / 2) >> 1; FatTime |= (pTime.minutes)
16 2023-10-22
编程技术问答社区
Unix时间戳转为FAT时间戳
我试图将时间结构转换为胖时间戳.我的代码看起来像: unsigned long Fat(tm_struct pTime) { unsigned long FatTime = 0; FatTime |= (pTime.seconds / 2) >> 1; FatTime |= (pTime.minutes)
6 2023-10-21
编程技术问答社区
FATFS不能初始化SD卡。
所以我使用的是STM32F407,并试图用FATFS写入SD卡.我已经使用CUBEMX生成了胖层和4bit SDIO配置软件的代码.我已将以下代码添加到MAIN中以测试代码是否有效. UINT bw; f_mount(&FatFs, "", 0); /* Give a work area to the default drive */ /* Create a file */ if(f_open(&Fil, "newfile.txt", FA_WRITE | FA_CREATE_ALWAYS) == FR_OK) { f_write(&Fil, "It works!\r\n", 11, &bw); /* Write data to the file */ f_close(&Fil); /* Close the file */ if (bw == 11) { /*
38 2023-09-30
编程技术问答社区
在FAT32/NTFS文件系统上快速搜索
我正在编写一个程序,该程序通过文件名和文件内容(纯文本)搜索整个文件系统.是否有任何算法或开源项目可以使搜索非常快?我正在使用FAT/NTFS文件系统在Windows上进行此操作,但我不想索引. 解决方案 在SourceForce上下载了NTFS Searcher(名为NTFS-Search),它可以很好地完成工作!它首先读取" fat'once",之后它的速度非常快.只有界面是德语. 您可以使用SVN下载源: svn co https://ntfs-search.svn.sourceforge.net/svnroot/ntfs-search 其他解决方案 如果您仅通过文件名/文件属性/文件日期搜索,则具有最佳性能的"魔术"方法是手动"解析"文件分配表(如果文件系统是fat)和主文件表(如果文件系统为ntfs). 对于脂肪文件系统来说,这并不难,因为它非常简单且文化良好,但是对于NTF来说,它更加困难,因为文件系统更为复杂且记录了不太好. 如果您也
26 2023-08-24
编程技术问答社区
将所有文件名截断为255个字符的命令
一个NTFS目录在bash壳中打开.什么命令将递归将目录中的所有文件名截断为Ext3? 所需的255个字符限制 解决方案 如果您可以访问Windows Shell,则可以使用: @echo off setlocal EnableDelayedExpansion REM loop over all files in the cwd for /f %%a in ('dir /a-d /b') do ( REM store this filename in a variable so we can do substringing set ThisFileName=%%a REM now take a substring set ThisShortFileName=!ThisFileName:~0,255! REM finally, the rename: echo ren %%a !ThisShortFileName! ) :EOF
6 2023-08-07
编程技术问答社区
使用 Python 将 USB 驱动器格式化为 FAT32
我正在尝试创建一个可引导的USB驱动器,并且需要将USB格式化为FAT32,以便我可以将所有文件提取到其中. 是否可以使用纯Python格式化USB驱动器?我可以在不使用外部命令的情况下将其格式化为FAT32吗? 我知道在狂欢中我可以这样做:sudo dd if=/dev/zero of=/dev/sdb bs=4k && sync要格式化USB驱动器,我该如何使用Python进行类似的操作? 解决方案 以下是您在问题中给出的dd命令的近似值.我不确定完成后是否有办法强制A sync. import io block = b'\0' * 4096 with io.FileIO('/dev/sdb', 'w') as f: while f.write(block): pass 其他解决方案 您可以使用
14 2023-07-21
编程技术问答社区
FAT32:分别设置长文件名和8.3文件名
我需要用一个目录构建一个SDHC卡(FAT32),在该目录中我选择了短文件和长文件名.例如.简短的文件名MYDIR但长名i am a cool name. yeah. check out the awesomeness.基于Wikipedia,两个名称之间没有强制性的相关性,因此我的目标应该是可能的: 没有强制性算法从LFN 创建8.3名称 - 我可以使用任何必要的系统来执行此操作(Windows,Mac,Linux,Hex编辑器),但是越容易.谢谢! 解决方案 使用您提到的算法自动并强制地从LFN构建短文件名. (也详细介绍了FAT32 规范).这是由文件系统驱动程序(至少在Windows和Linux上)完成的.除非您修改不建议的驱动程序,否则您真的无法更改.如果您只想为一个目录执行此操作,则可以通过修改十六进制编辑器中的磁盘图像来实现此目标 这是我在Linux上尝试的内容: #dd if=/dev/zero of=fatImage bs=1048576 c
88 2023-04-20
编程技术问答社区
FAT32每个目录的文件数限制
我目前正在尝试在Xillinx Kintex 7卡上在C中对胖系统进行编码.它配备了微型布莱兹,我已经设法创建了大多数所需的功能. 我面临的问题是关于文件夹的总容量,我在网上读到,在FAT32中,文件夹应该能够包含超过65 000个文件我只能每个文件夹509个文件.我认为这是因为我理解了FAT32的工作方式,但这是我到目前为止所做的: 我已经创建了一个格式函数,该函数在MBR(扇区0)和卷ID(我的磁盘上的扇区2048)中写入正确的数据. 我创建了一个函数,该函数写入根目录的内容(从扇区124 148开始) 我已经创建了一个撰写一个新文件夹的函数,该函数包含尺寸X的n个文件.文件夹的名称写在root Directory(sector 124148)中,文件名写在下一个群集上(sector 124212,因为我将集群大小设置为64个扇区).最后,在下一个从扇区124276开始的群集上写了文件的内容(一个简单的计数器). 在这里,一个文件夹的大小为1个群集,这意味着它的
18 2023-03-05
编程技术问答社区
在C语言中使用fwrite时,文件大小限制为2GB?
我有一个简短的C程序,该程序写入文件中,直到磁盘上没有更多空间: #include int main(void) { char c[] = "abcdefghij"; size_t rez; FILE *f = fopen("filldisk.dat", "wb"); while (1) { rez = fwrite(c, 1, sizeof(c), f); if (!rez) break; } fclose(f); return 0; } 当我运行程序(在Linux中)时,该文件到达2GB时会停止. 由于文件结构或其他内容,是否存在内部限制? 谢谢. 解决方案 在32位系统上(即OS为32位),默认情况下,Fopen和Co仅限于32位尺寸/偏移/等...您需要启用大型文件支持或使用*64位选项: 然后您的FS需要支持这一点,但是除了脂肪和其他原始FS,它们都支持创建文件> 2 GB.
46 2023-02-02
编程技术问答社区
为什么FAT32磁盘被限制为4GB文件?
我不是在寻找解决方法;我想解释.我通过Google发现的大多数链接都告诉我,文件限制为4GB,但不是原因. 我知道Wikipedia的解释:/file_allocation_table#fat32 但这仍然没有详细介绍原因. (Scandisk与它有什么关系?) 也许我会理解是否可以克服4GB文件大小限制. 解决方案 为了扩展该答案,FAT32源自FAT16和FAT12.当引入FAT12时,PCS运行了16位OS,并且没有大于10兆字节的驱动器.我认为没有人期望PC上的任何人都需要一个比最大驱动器大小的四百倍的文件.此外,即使Microsoft具有远见,每个目录条目都可以分配一个额外的字节,以将文件大小的32-39持有(允许文件最多允许每个Terabyte),这是可疑的任何应用程序程序员都会使用的.没有语言为大于32位的整数数学提供方便的支持;甚至32位数学也被认为很花哨. 我脑海中的一个更大的问题是,为什么我不知道任何努力朝着不基于依次数量的扇区的标准非
30 2022-09-23
编程技术问答社区
c语言中BYTE、WORD和DWORD数据类型的格式说明?
在c语言中,用于数据类型字节,单词和dword的最合适格式是与printf和scanf函数一起使用的? 我很难在控制台上显示BPB字段的值. 例如,如果我想使用"%lu"来显示bpb_bytspersec,我会得到不寻常的数字. printf("Bytes per Sector: %lu", b->BPB_BytsPerSec); 我的价值为" 514",我认为这是错误的解释.请提出出路.谢谢. (我在64位窗口上使用Mingw使用GCC 5.1) 这是我们正在谈论的结构: /* BPB Structure Collected from internet */ struct BPB_FAT32 { BYTE BS_jmpBoot[3]; // 0 BYTE BS_OEMName[8]; // 3 WORD BPB_BytsPerSec; // 11 BYTE BPB_SecPerClus;
106 2022-09-23
编程技术问答社区
FAT32格式的存储上的文件系统链接
我知道fat32,以及fat16/12均不支持符号链接和硬链.但是我想到了这个想法: 脂肪规范描述了每个文件都与目录输入关联.在我的理解中,可以说目录中的文件输入以某种方式或其他点 那么,如何定义两个指向同一文件包含的目录输入?或者是什么阻止我这样做? 用例:我有一个用于汽车收音机的USB质量存储设备,我想将目录用作播放列表,因为无线电软件不支持播放列表.因此,对我来说,Windows在这样做时的行为并不重要. 解决方案 您在谈论的内容("指向同一文件包含的两个目录 - 输入")是硬链接. CHKDSK将其报告为交联并打破它们,"修复"文件(实际上是副本). 其他解决方案 这应该用于简单问题. IE.它可以用作黑客/解决方法,我不知道如果您重命名/移动/删除文件会发生什么.因此,您不应该在主HDD上执行此操作. 我使用十六进制编辑器手动编辑了目录 - 输入.我修改了群集以及文件尺寸,并成功伪造了硬链接.我的Car-Radio甚至Windows(7,
26 2022-09-23
编程技术问答社区
如何在Powershell或Windows命令壳中设置FAT32的短名称
我需要编写一个脚本来设置 FAT32 文件系统上文件的短名称.在 NTFS 上,我可以在 windows 下使用 FSUTIL 实用程序,但我似乎无法理解如何为 FAT32 驱动器执行此操作. window 命令或 powershell 脚本的额外荣誉 解决方案 他们让这个变得超级难,但这里有一个解决方案:http://technet.microsoft.com/en-us/library/ee692751.aspx
140 2022-08-10
编程技术问答社区