Мне нужны исторические ссылки для Google Chrome, и при поиске я обнаружил файл «История» в Google Chrome.Но я не могу прочитать файл «История», потому что Google Chrome использует этот файл «История».Поэтому сначала я копирую файл «History» и читаю скопированный файл «History». Это сработало, но только один раз.Потому что, когда во второй раз я хочу ссылки на историю, я получаю сообщение об ошибке «Файл используется другим процессом» (из-за невозможности удаления).
private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
string userName = Environment.UserName;
string confilename = string.Format(@"Data Source=C:\Users\{0}\Desktop\History1827", userName);
string oldfilename = string.Format(@"C:\Users\{0}\AppData\Local\Google\Chrome\User Data\Default\History", userName);
string newfilename = string.Format(@"C:\Users\{0}\Desktop\History1827", userName);
File.Copy(oldfilename, newfilename); // I copy oldfile to newfile destination
using (SQLiteConnection connection = new SQLiteConnection(confilename))
{
connection.Open();
SQLiteCommand command1 = new SQLiteCommand();
command1.Connection = connection;
command1.CommandText = "Select * From urls";
SQLiteDataReader dr = command1.ExecuteReader();
string historylinks = "";
while (dr.Read())
{
// dr[0] = ID of Link , dr[1] = Link , dr[2] = Title of Link
historylinks = dr[0].ToString() + "\t--->" + dr[1].ToString(); // I get ID and Link from History file that i copied
listBox1.Items.Add(historylinks);
}
dr.Close();
connection.Close();
}
if (File.Exists(newfilename))
{
File.Delete(newfilename);
MessageBox.Show("Deleted");
}
}
Ошибка: File.Delete(newfilename);
Чтоя сделал после этого, когда я вижу эту ошибку?
private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
string userName = Environment.UserName;
string confilename = string.Format(@"Data Source=C:\Users\{0}\Desktop\History1827", userName);
string oldfilename = string.Format(@"C:\Users\{0}\AppData\Local\Google\Chrome\User Data\Default\History", userName);
string newfilename = string.Format(@"C:\Users\{0}\Desktop\History1827", userName);
File.Copy(oldfilename, newfilename); // I copy oldfile to newfile destination
//------ I DID NOT USE SQLİTECONNECTİON -----
//using (SQLiteConnection connection = new SQLiteConnection(confilename))
//{
// connection.Open();
// SQLiteCommand command1 = new SQLiteCommand();
// command1.Connection = connection;
// command1.CommandText = "Select * From urls";
// SQLiteDataReader dr = command1.ExecuteReader();
// string historylinks = "";
// while (dr.Read())
// {
// // dr[0] = ID of Link , dr[1] = Link , dr[2] = Title of Link
// historylinks = dr[0].ToString() + "\t--->" + dr[1].ToString(); // I get ID and Link from History file that i copied
// listBox1.Items.Add(historylinks);
// }
// dr.Close();
// connection.Close();
//}
if (File.Exists(newfilename))
{
File.Delete(newfilename);
MessageBox.Show("Deleted");
}
}
Работало.Итак, если я не использую SQLiteConnection, Программа может удалить скопированный файл «History».
Кто использует скопированный файл «History»?Как я могу это исправить?
Спасибо.