C#中如何获得被复制文件的文件名和路径

C#中如何获得被复制文件的文件名和路径,第1张

兄弟我们聊过的,呵呵,我测试了下可以做出来了,FileSystemWathceR 类可以帮到你,先把电脑上的盘符全部遍历出来,用这个类做跟硬盘盘符一样多的数组,把他们的事件代理全部关联在一个方法上面,产生的事件全部存档到一个txt文件中,你就可以根据名字来看这个文件是否都过,不过说实话这个是笨方法,我实例的给你点代码

using System;

using SystemCollectionsGeneric;

using SystemText;

using SystemIO;

using SystemDiagnostics;

namespace WindowsApplication文件监控

{

class Program

{

static void Main(string[] args)

{

Run();

}

public static void Run()

{

// Create a new FileSystemWatcher and set its properties

FileSystemWatcher watcher = new FileSystemWatcher();

//watcherPath = args[1];

watcherPath = "c:\\";

// 不能只监控C盘,你要监控你所有的盘符,先遍历出来在弄个数组相信你应该会的

watcherIncludeSubdirectories = true;

/ Watch for changes in LastAccess and LastWrite times, and

the renaming of files or directories /

watcherNotifyFilter = NotifyFiltersLastAccess | NotifyFiltersLastWrite

| NotifyFiltersFileName | NotifyFiltersDirectoryName;

//这里是监视的 *** 作类型,应该看的懂的

// Only watch text files

watcherFilter = "txt";

//监视的文件类型

// Add event handlers

watcherChanged += new FileSystemEventHandler(OnChanged);

watcherCreated += new FileSystemEventHandler(OnChanged);

watcherDeleted += new FileSystemEventHandler(OnChanged);

watcherRenamed += new RenamedEventHandler(OnRenamed);

// 这里是关联事件的代理

// Begin watching

watcherEnableRaisingEvents = true;

// 下面是程序结束的条件说都不用说了

// Wait for the user to quit the program

ConsoleWriteLine("Press \'q\' to quit the sample");

while (ConsoleRead() != 'q') ;

}

// Define the event handlers

private static void OnChanged(object source, FileSystemEventArgs e)

{ // 比如比如文件发生改变了,你可以弄个时间是吧好知道

// Specify what is done when a file is changed, created, or deleted

ConsoleWriteLine("File: " + eFullPath + " " + eChangeType);

}

private static void OnRenamed(object source, RenamedEventArgs e)

{

// Specify what is done when a file is renamed

ConsoleWriteLine("File: {0} renamed to {1}", eOldFullPath, eFullPath);

}

private static void Created(Object source, FileSystemEventArgs e)

{

ConsoleWriteLine("File: {0} renamed to {1}", eName, eFullPath);

}

// 上面三个方法是代理关联的其实是四个我只写了三个够了 看了这个相信你应该能做出来了,呵呵

这个方法最主要的缺点是如果他复制到优盘那就麻烦了呵呵,相信你应该明白了吧

}

}

string fileDir = EnvironmentCurrentDirectory;

ConsoleWriteLine("当前程序目录:"+fileDir);

//一个文件目录

string filePath = "C:\\bin\\files\\testxml";

ConsoleWriteLine("该文件的目录:"+filePath); string str = "获取文件的全路径:" + PathGetFullPath(filePath); //-->C:\bin\files\testxml ConsoleWriteLine(str);

str = "获取文件所在的目录:" + PathGetDirectoryName(filePath); //-->C:\bin\files ConsoleWriteLine(str);

str = "获取文件的名称含有后缀:" + PathGetFileName(filePath); //-->testxml ConsoleWriteLine(str);

str = "获取文件的名称没有后缀:" + PathGetFileNameWithoutExtension(filePath); //-->test ConsoleWriteLine(str);

str = "获取路径的后缀扩展名称:" + PathGetExtension(filePath); //-->xml ConsoleWriteLine(str);

str = "获取路径的根目录:" + PathGetPathRoot(filePath); //-->C:\ ConsoleWriteLine(str);

ConsoleReadKey();

既然文件名不知道是什么,用directorygetfiles去取得该目录下的文件,就可以得到文件名了

SystemIODirectory

GetFiles(String) 返回指定目录中文件的名称(包括其路径)。

例子:

string targetDirectory = "c:\\windows"; //例如

string [] fileEntries = DirectoryGetFiles(targetDirectory);

foreach(string fileName in fileEntries)

这里就可以得到该文件名称了

C风格:

char p = strrchr(pathc_str(), '/')

p是path里最后一个'/'的地址。然后

string s(p + 1);

,s就是"worldshp"了。

C++风格:

int pos = pathfind_last_of('/');

pos就是最后一个'/'的下标。

然后

string s(pathsubstr(pos + 1) );

s就是"worldshp"了。

以上就是关于C#中如何获得被复制文件的文件名和路径全部的内容,包括:C#中如何获得被复制文件的文件名和路径、WPF,怎样分别获取文件路径,文件名、c# 已知路径如何获取文件名(不知文件名是什么)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9451762.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存