当我使用下面的代码行时,我得到一个包含各个文件的完整路径的字符串数组。privatestring[]pdfFiles=Directory.GetFiles("C:\\Documents","*.pdf");我想知道是否有办法只检索字符串中的文件名而不是整个路径。 最佳答案 您可以使用Path.GetFileName从完整路径获取文件名privatestring[]pdfFiles=Directory.GetFiles("C:\\Documents","*.pdf").Select(Path.GetFileName).ToArray(
我正在编写一个从选择文件开始的小实用程序,然后我需要选择一个文件夹。我想将文件夹默认为所选文件所在的位置。OpenFileDialog.FileName返回完整路径和文件名-我想要的只是获取路径部分(无文件名),所以我可以将其用作初始选定文件夹。privateSystem.Windows.Forms.OpenFileDialogofd;privateSystem.Windows.Forms.FolderBrowserDialogfbd;...if(ofd.ShowDialog()==DialogResult.OK){stringsourceFile=ofd.FileName;strin
我想在创建文件时向文件名添加时间戳,但我尝试过的大多数DateTime方法输出的内容都带有空格和斜杠。例如:Debug.WriteLine(DateTime.Now.ToString());//ToFileTime()有效,但不完全是人类可读的。如何将输出格式化为人类可读的时间戳,其中包含可用于文件名或扩展名的日期和时间?最好是像2011-19-9--13-45-30这样的东西? 最佳答案 你可以使用这个:DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss");
我已经实现了一种算法,该算法将为将保存在硬盘驱动器上的文件生成唯一的名称。我附加了DateTime:Hours,Minutes,SecondandMilliseconds但它仍然生成重复的文件名,因为我一次上传多个文件。为要存储在硬盘驱动器上的文件生成唯一名称的最佳解决方案是什么,以便没有2个文件相同? 最佳答案 如果可读性不重要,请使用GUIDs.例如:varmyUniqueFileName=string.Format(@"{0}.txt",Guid.NewGuid());或shorter:varmyUniqueFileName=
我想在我的应用程序中包含批处理文件重命名功能。用户可以键入目标文件名模式,并且(在替换模式中的一些通配符之后)我需要检查它是否将成为Windows下的合法文件名。我尝试使用像[a-zA-Z0-9_]+这样的正则表达式,但它不包含来自不同语言的许多国家特定字符(例如变音符号等)。进行此类检查的最佳方法是什么? 最佳答案 来自MSDN's"NamingaFileorDirectory,"以下是Windows下合法文件名的一般约定:您可以使用当前代码页(127以上的Unicode/ANSI)中的任何字符,除了:>:"/\|?*整数表示为0
stringpath="C:\folder1\folder2\file.txt";我可以使用什么对象或方法来得到结果folder2? 最佳答案 我可能会使用类似的东西:stringpath="C:/folder1/folder2/file.txt";stringlastFolderName=Path.GetFileName(Path.GetDirectoryName(path));对GetDirectoryName的内部调用将返回完整路径,而对GetFileName()的外部调用将返回最后一个路径组件-这将是文件夹名称。无论路径是否
从VisualStudio中的即时窗口:>Path.Combine(@"C:\x","y")"C:\\x\\y">Path.Combine(@"C:\x",@"\y")"\\y"看来两者应该是一样的。旧的FileSystemObject.BuildPath()不是这样工作的... 最佳答案 这是一个哲学问题(也许只有Microsoft才能真正回答),因为它完全按照文档中的说明进行操作。System.IO.Path.Combine“如果path2包含绝对路径,则此方法返回path2。”Here'stheactualCombinemet
如果我有一个字符串"abc.txt",有没有一种快速的方法来获取只是"abc"的子字符串?我不能执行fileName.IndexOf('.')因为文件名可能是"abc.123.txt"之类的,我显然只是想要摆脱扩展名(即“abc.123”)。 最佳答案 Path.GetFileNameWithoutExtension方法为您提供作为参数传递的文件名,不带扩展名,从名称中应该很明显。 关于c#-从文件名字符串中删除文件扩展名,我们在StackOverflow上找到一个类似的问题:
System.IO.Path中是否有任何内置的东西只给我文件路径?例如,如果我有一个string@"c:\webserver\public\myCompany\configs\promo.xml",有没有什么BCL方法可以给我"c:\webserver\public\myCompany\configs\"? 最佳答案 Path.GetDirectoryName()...但是您需要知道您传递给它的路径确实包含一个文件名;它只是从路径中删除最后一位,无论它是文件名还是目录名(它实际上不知道是哪个)。您可以首先通过在路径上测试File.E
这个问题在这里已经有了答案:HowtorecursivelylistallthefilesinadirectoryinC#?(23个回答)关闭9年前。我想知道是否可以获取某个文件夹中所有文本文件的名称。例如,我有一个名为Maps的文件夹,我想获取该文件夹中所有文本文件的名称并将其添加到字符串列表中。是否可能,如果可能,我该如何实现?