C#中如何判断目录权限是可写的,还有删除的时候,如何判断文件正在使用? C#中如何判断目录权限是可写的,还有删除的时候,如何判断文件正在使用?就是想写个程序删除那些可写的文件,但是当有些文件正在使用的时候,跳过那个文件,也就是不删除正在使用的文件,请问在C#中如何判断目录权限是可写的,还有删除的时候,如何判断文件正在使用? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /// <summary> /// 解决删除目录提示:System.IO.IOException: 目录不是空的。 /// 删除一个目录,先遍历删除其下所有文件和目录(递归) /// </summary> /// <param name="strPath">路径</param> /// <returns>是否已经删除</returns> private bool DeleteADirectory(string strPath) { string[] strTemp; try { //先删除该目录下的文件 strTemp = System.IO.Directory.GetFiles(strPath); foreach (string str in strTemp) { System.IO.File.Delete(str); } //删除子目录,递归 strTemp = System.IO.Directory.GetDirectories(strPath); foreach (string str in strTemp) { DeleteADirectory(str); } //删除该目录 System.IO.Directory.Delete(strPath); return true; } catch (Exception ex) { MessageBox.Show(ex.Message, "发生错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } } filestream 等使用文件,dispose等关闭使用再删除修改文件名是否成功,不成功使用 C#有ACL处理的,用那个如何判断呢? 判断文件是否正在被使用static bool IsFileInUse(String^ fileName) { bool inUse = true; if (System::IO::File::Exists(fileName)) { FileStream^ fs = nullptr; try { fs = gcnew FileStream(fileName, FileMode::Open, FileAccess::Read, FileShare::None); inUse = false; } catch (Exception^ e) { Console::WriteLine(e->Message->ToString()); } finally { if (fs != nullptr) { fs->Close(); } } return inUse; //true表示正在使用,false没有使用 } else { return false; //文件不存在则一定没有被使用 } } C#实现匿名或者假号码发送手机短信。 用ComboBox控件来编辑C#中ListView控件中数据,提示这个错误怎么解决?? 推荐给同时需要用(或者会用)Eclipse与VS两种IDE的朋友一个VS插件 用VS自带的SQL连接northwind字符串怎么写 gridview 隐藏问题 在线等 可以动态去除控件的某个事件吗? 请教:代理服务器搜索器 numericUpDown的两个问题 关于INI文件的问题 VC.net和VC++ 到底有哪些区别? DataGridView 中CurrentRow、CurrentCell的问题? C#录音,录制视频的配音。
/// 解决删除目录提示:System.IO.IOException: 目录不是空的。
/// 删除一个目录,先遍历删除其下所有文件和目录(递归)
/// </summary>
/// <param name="strPath">路径</param>
/// <returns>是否已经删除</returns>
private bool DeleteADirectory(string strPath)
{
string[] strTemp;
try
{
//先删除该目录下的文件
strTemp = System.IO.Directory.GetFiles(strPath);
foreach (string str in strTemp)
{
System.IO.File.Delete(str);
}
//删除子目录,递归
strTemp = System.IO.Directory.GetDirectories(strPath);
foreach (string str in strTemp)
{
DeleteADirectory(str);
}
//删除该目录
System.IO.Directory.Delete(strPath);
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "发生错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
}
再删除
修改文件名是否成功,不成功使用
static bool IsFileInUse(String^ fileName)
{
bool inUse = true;
if (System::IO::File::Exists(fileName))
{
FileStream^ fs = nullptr;
try
{
fs = gcnew FileStream(fileName, FileMode::Open, FileAccess::Read, FileShare::None);
inUse = false;
}
catch (Exception^ e)
{
Console::WriteLine(e->Message->ToString());
}
finally
{
if (fs != nullptr)
{
fs->Close();
}
}
return inUse; //true表示正在使用,false没有使用
}
else
{
return false; //文件不存在则一定没有被使用
}
}