Ich arbeite an einem Projekt für Windows Mobile 6.5. Ich verwende C# mit Compact Framework 3.5 (CF 3.5) und SDK für Windows Mobile 6.5.Fehler beim Löschen der Datei unter Windows Mobile 6.5
Meine Routine schreibt Dateien zur weiteren Verarbeitung in ein temporäres Verzeichnis. Nach einigen Tagen wird die Datei umbenannt und auf eine Bereinigung verwiesen.
Beim Versuch, die Datei zu löschen, tritt der folgende Fehler auf: Zugriff auf den Pfad '\ Anwendungsdaten \ Volatile \ Temp \ 20170822-97703.Nf.env' wird verweigert.
Wo:
- \ Anwendungsdaten \ Volatile das temporäre Verzeichnis Standard ist
Path.GetTempPath()
- \ Temp ist mein temporäres Verzeichnis
- 20170822-97703.Nf.env ist meine Datei.
Code:
const string dirTemp= "Temp";
public void PurgeFiles()
{
DateTime datePurge= new DateTime();
datePurge= DateTime.Now.AddDays(-7);
var files= FindFiles();
foreach (string file in files)
{
var dateAlt = Directory.GetLastWriteTime(file);
if (dateAlt< datePurge)
{
Directory.Delete(file);
}
}
}
private string[] FindFiles()
{
string searchPattern;
string dirLocal;
dirLocal= Path.GetTempPath();
dirLocal= Path.Combine(dirLocal, dirTemp);
if (Directory.Exists(dirLocal))
{
searchPattern = "*.Env";
var files = Directory.GetFiles(dirLocal, searchPattern);
return files;
}
else
return new string[0];
}
Speichern
public bool SaveFile(string dir, string fileName, string content)
{
try
{
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir);
string pathFile = Path.Combine(dir, fileName);
if (File.Exists(pathFile))
return true;
//Salva os dados
StreamWriter fileConf = new StreamWriter(pathFile);
fileConf.Write(content);
fileConf.Flush();
fileConf.Close();
return true;
}
catch (Exception ex)
{
return false;
}
}
Mark die Datei Datei als
verarbeitetpublic void MarkFile(string fileName)
{
try
{
string newFileName= fileName + ".env";
if (File.Exists(newFileName))
return;
File.Move(fileName , newFileName);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
Vielleicht ist die Datei gesperrt und wird nach einem Neustart löschen-fähig sein. Wenn Sie einen Versuch/Fang um File.Delete hinzufügen, können Sie es beim nächsten Mal erneut versuchen. – stuartd
Wir müssen den Code sehen, der die temporäre Datei erstellt und schreibt. Es ist sehr wahrscheinlich, dass Sie den Dateigriff zu diesem Zeitpunkt nicht freigeben. – ctacke
Fügen Sie die Funktionen zum Speichern und Umbenennen hinzu. Quando salvo o arquivo eu fecho oder mesmo, mas quando renomeio o arquivo não. Ist es notwendig? –