Tag: 文件系统

根据searchPattern移动文件

我有excel列表,其中包含我想从一个文件夹移动到另一个文件夹的文件名。 而且我不能只将文件从一个文件夹粘贴到另一个文件夹,因为有些文件与excel列表不匹配。 private static void CopyPaste() { var pstFileFolder = “C:/Users/chnikos/Desktop/Test/”; //var searchPattern = “HelloWorld.docx”+”Test.docx”; string[] test = { “HelloWorld.docx”, “Test.docx” }; var soruceFolder = “C:/Users/chnikos/Desktop/CopyTest/”; // Searches the directory for *.pst foreach (var file in Directory.GetFiles(pstFileFolder, test.ToString())) { // Exposes file information like Name var theFileInfo = new FileInfo(file); var destination = soruceFolder + […]

Linq到文件系统以获取每个子文件夹中的最后创建的文件

我有一个包含一些子目录的文件夹/目录。 只有那些子文件夹包含文件。 我必须获取每个子文件夹中最后创建的文件的完整路径。 只需要每个子文件夹中最后创建的文件。 我怎样才能做到这一点? 我怎样才能将linq用于文件

文件系统支持FindFirstFileEx,限制目录

我正在使用Windows API函数FindFirstFileEx,因为它提供了仅返回给定目录的子目录(忽略文件)的function。 但是,当我使用required标志调用此函数时,我仍然会收到文件和目录。 FindFirstFileEx使用的FindExSearchLimitToDirectories标志的MSDN文档说: 这是一个咨询标志。 如果文件系统支持目录过滤,则该函数将搜索与指定名称匹配的文件,并且也是目录。 如果文件系统不支持目录过滤,则会以静默方式忽略此标志。 使用此搜索值时,FindFirstFileEx函数的lpSearchFilter参数必须为NULL。 如果需要目录过滤,则此标志可用于所有文件系统,但由于它是一个顾问标志并且仅影响支持它的文件系统,因此应用程序必须检查存储在FindFirstFileEx函数的lpFindFileData参数中的文件属性数据确定函数是否已返回目录的句柄。 那么,什么文件系统实际上支持这个标志? 实际在同一页面上列出这些支持的文件系统是明智的,但我找不到它。 我的开发系统是Windows XP SP3,NTFS,.NET 3.5。 我知道我可以检查文件属性以确定文件是否是目录,但这意味着检查每个文件/目录。 它也首先打败了使用FindFirstFileEx的目的。 当然,我的代码中仍有可能出错。 我唯一能看到的是将IntPtr.Zero传递给lpSearchFilter可能与传递NULL不同(如引用中所述)。 这是我正在使用的代码示例: m_searchDirHandle = WinAPI.FindFirstFileEx(@”C:\Temp\*”, WinAPI.FINDEX_INFO_LEVELS.FindExInfoStandard , ref m_findDirData, WinAPI.FINDEX_SEARCH_OPS.FindExSearchLimitToDirectories, IntPtr.Zero , 0); if (m_searchDirHandle != WinAPI.INVALID_HANDLE_VALUE) { do { foundNextDir = WinAPI.FindNextFile(m_searchDirHandle, ref m_findDirData); } while (foundNextDir); }

如何在treeview asp.net C#中获取客户端文件系统目录

嗨,我正在开发一个基于Web的ftp客户端应用程序,我想获取客户端文件系统目录并将它们填充到树视图中我尝试此代码,但它将给出我的应用程序运行的系统(服务器)的目录,我希望当任何用户通过浏览器访问我的应用程序我想加载用户文件系统目录。 这是我试过的代码: private void fillTree() { DirectoryInfo directory; string sCurPath = “”; // clear out the old values TreeView2.Nodes.Clear(); // loop through the drive letters and find the available drives. foreach (char c in driveLetters) { sCurPath = c + “:\\”; try { // get the directory informaiton for this path. directory = new DirectoryInfo(sCurPath); […]

如何在c#中使用Windows搜索服务

我正在处理一个应用程序,用户可以在本地计算机或网络上搜索文件或文件夹。 我正在使用DirectoryInfo.GetDirecotories()。 (a)但我还想添加Windows 7用于搜索的function,我相信它使用索引。 我还在msdn上看过“Windows搜索服务”,但我不确定哪种方式最好,查询索引目录或使用搜索服务,有什么建议吗? (b)我想知道是否有人可以在C#中给我一个搜索索引目录的小例子。 提前致谢。

通过在线源统一在手机上保存图像

主要目标:从在线url加载图像,然后在移动设备上的/ Repo / {VenueName}目录中本地保存图像(任何类型)。 这样就可以节省未来的移动数据,当场景加载首先检查本地图像然后调用www请求,如果它已经不存在于移动设备上。 我已经在线获取图像,我从json文件中提取了url,现在我想将它们本地存储在移动设备上,以便为最终用户保存数据传输。 我已经绕过具有持久数据路径和IO.directories的圈子并继续遇到问题。 目前我有一个从在线保存文本并成功将其存储在设备上的function,但如果我将它用于图像,由于下面显示的字符串参数,它将无法工作,我试图将其转换为字节编辑function也不是通过它www.text并得到图像损坏错误。 这是我用于文本保存文件的旧function。 public void writeStringToFile( string str, string filename ){ #if !WEB_BUILD string path = pathForDocumentsFile( filename ); FileStream file = new FileStream (path, FileMode.Create, FileAccess.Write); StreamWriter sw = new StreamWriter( file ); sw.WriteLine( str ); sw.Close(); file.Close(); #endif } public string pathForDocumentsFile( string filename ){ if (Application.platform […]

检测File.Move是否需要“复制 – >删除”或仅更改文件系统表中的位置

免责声明:我会马上承认,我对文件系统如何运作的细节有相当多的无知。 我一直在使用NTFS这么长时间,我可以根据我目睹的行为推断出正在发生的事情,以及我从互联网上的dorking所学到的一切 – 但是…… 我希望有一种方法可以检测是否将文件从“位置A”移动到“位置B”,操作是否需要等效的“File.Copy – > File.Delete”或者是否不会复制实际的文件数据,但只是更新“主文件表”中的位置等。 出于各种目的,我有时会移动大量的大文件。 我想在UI中报告进度。 我意识到当我调用File.Move并将文件从一个磁盘/分区上的某个位置移动到另一个磁盘/分区时,该函数将有效地在磁盘/分区之间“复制文件数据 – >删除”。 当遇到这种情况时,我希望能够检测到这种情况会发生,所以我可以使用我编写的代码来复制文件并在传输字节时提供详细的进度报告,这样我就可以经常更新UI中的进度条。 当它在同一个磁盘/分区上时,因为更新主文件表中的位置是如此之快,我只需在file.Move函数为我批量移动的每个文件完成时更新进度条。 使用.NET 4(C#),是否可以通过其他方式检测调用File.Move是否需要等效的“复制 – >删除”操作,或者只是更新文件表而不是复制文件数据? 编辑: 正如我在下面的评论中指出的那样,我认为可能做到这一点的可能性是检测给定的源文件位置和目标文件位置是否位于同一物理磁盘和分区上,如果是这样,这是否意味着我可以准确预测行为并决定要调用哪些函数 – 内置的File.Move函数用于“近即时”更新文件系统表,我相信在移动到相同磁盘/部件时会发生这种情况,或者我更详细的’报告进度每个’x’字节复制’自定义文件复制代码。 文件传输速度在我的程序运行的机器上会有很大差异,所以我希望能够在可能的情况下报告详细的进度/当前的传输速度。 注 – 程序可能正在使用网络UNC路径,这些路径可以使用具有相同根路径的不同物理磁盘,即:\\ somename \ shares \ workfolder \ project可能位于不同的物理磁盘上,然后是\\ somename \ shares \ workfoldder \ otherproject 。 因此,我需要一种方法来检测分区ID或物理磁盘ID,以查看同一磁盘/分区上的源文件夹和目标文件夹。 谢谢

如何确定远程驱动器是否有足够的空间使用C#写入文件?

如何确定远程驱动器是否有足够的空间让我在.Net中使用C#上传给定文件?

C#:用于文本文件的尾部程序

我有一个日志文件,不断记录短线。 我需要开发一个服务来响应(或轮询或监听)添加到该文件的新行,这是一种unix’尾程序,因此我的服务始终是最新的文件。 我不认为打开读取流并保持打开是一个好主意。 也许我应该使用FileSystemWatcher类。 长话短说,我需要实时解析添加到此文件的每一个新行。 任何想法的帮助或指示真的很感激。 编辑 我一直不太清楚。 我不需要任何程序,我正在编写程序。 用于读取(然后处理)添加到文件的每个新行。 我的意思是我正在寻找的是一种方法论(或者:如何实现这个?),以便不断地跟踪一直保持写入的文件。 我必须开发一个“侦听”此文件并在每个新行上执行操作的Windows服务。 因此,如果在给定时刻文件是: 12.31.07 – jdoe [log on] 347 12.32.08 – ssmith [log on] 479 12.32.08 – mpeterson [log off] 532 12.32.09 – apacino [log on] 123 在线的那一刻 12.32.11 – pchorr [log on] 127 由日志记录程序(我无法访问)添加到日志文件中,我需要我的Windows服务“对行成瘾”做出反应,拦截新行( 12.32.11 – pchorr [log on] 127 )和处理它。 等等。 现在,我不知道该怎么做。 我应该每隔n秒轮询一次文件,将最后一条读取行存储在内存中并仅处理新添加的行。 […]

存储我的应用程序特定数据的正确位置在哪里?

我正在开发一个小型的C#Winforms游戏,其中一件我想做的事就是保存应用程序特定的数据。 但是,我正在努力了解应该存储的正确位置。 据我所知,应用程序可能存储了几种类型的数据,因此可以保存不同的地方: 1.应用程序属性 – 诸如应用程序存储数据的位置,最后登录用户的位置,默认窗口大小,位置等设置。此信息是假设进入app.settings,还是进入注册表? 2.全局应用程序数据 – 这可能包括在此计算机上运行应用程序的每个用户使用的精灵和其他游戏资产。 这些常见数据将存储在何处? 值得注意的是,在我的特定情况下,这些数据将不会提供默认安装,并且将允许用户添加他们自己的游戏资产,然后该资产应该可用于同一计算机上的任何其他用户。 3.用户特定的应用程序数据 – 这将包括用户保存的游戏文件,其特定的应用程序首选项及其配置文件信息。 我应该在哪里存储这个? 理想情况下,我希望我的应用程序与Windows XP,Vista,7以及即将推出的Windows 8兼容 – 我不知道这是否会改变方法,但希望它能帮助提供建议。 这是我第一次涉足这种发展,我很欣赏一些“最佳实践”的建议。