- Регистрация
- 17.03.2016
- Сообщения
- 18
- Благодарностей
- 2
- Баллы
- 3
Подскажите, что у меня здесь неправильно?
Все время ошибка в логе:
Процесс не может получить доступ к файлу "E:\Project\data\blacklist\phone.txt", так как этот файл используется другим процессом.
Даже если файл только что создан вручную.
Или неправильный сам подход к работе с файлами?
Все время ошибка в логе:
Процесс не может получить доступ к файлу "E:\Project\data\blacklist\phone.txt", так как этот файл используется другим процессом.
Даже если файл только что создан вручную.
Или неправильный сам подход к работе с файлами?
PHP:
var dirProject = project.Variables["dirProject"].Value;
// Text - текст \ строка
// Mode - режим ("check", "add")
// FilePath - путь к файлу с расширением
project.Context["BlackList"] = (Func<string, string, string, bool>)((Text, Mode, FilePath) => {
string str = "";
var blacklist_result = false;
var directoryName = System.IO.Path.GetDirectoryName(FilePath);
if ( String.IsNullOrEmpty(directoryName) && !Directory.Exists(directoryName) ) { // Путь
System.IO.Directory.CreateDirectory(directoryName); // Если нет - создаем
}
if ( !(String.IsNullOrEmpty(FilePath)) && File.Exists(FilePath) ) {
System.IO.File.Create(FilePath);
}
var listTempBl = System.IO.File.ReadAllLines(FilePath).ToList().Distinct().ToList();
switch (Mode) {
case "add":
if ( File.ReadAllLines(FilePath).Length > 1 ) { str = Environment.NewLine; }
File.AppendAllText(FilePath, str + Text, Encoding.UTF8);
listTempBl.Clear();
listTempBl = System.IO.File.ReadAllLines(FilePath).ToList().Distinct().ToList();
System.IO.File.WriteAllText(FilePath, string.Join(Environment.NewLine, listTempBl));
Thread.Sleep(2000);
blacklist_result = true;
break;
case "check":
for(int i=0; i < listTempBl.Count; i++) {
str = listTempBl[i].Trim();
if (str.Contains( Text.Trim() )) {
blacklist_result = true;
} else {
blacklist_result = false;
}
}
break;
default:
break;
}
return blacklist_result;
});
var BlackList = project.Context["BlackList"];
if (!BlackList( "79999999999", "check", Path.Combine(dirProject, @"data\blacklist\phone.txt") )) {
return "BLACK List";
}
Последнее редактирование: