Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1550 | Anzahl registrierter User: 1840 | Besucher online: 72
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Ist Datei beschreibbar


Autor: bigdeak
Sprache: C#
Bewertung:
1.92 (3 votes)
Anzahl der Aufrufe: 4122
  
Kick it on dotnet-kicks.de  

Beschreibung:

Eine kleine Methode, mit der man abfragen kann, ob eine Datei beschreibbar ist. Damit kann man unter anderem raus finden, ob die Datei im Zugriff ist.

Abgelegt unter: Datei, Zugriff, beschreibbar.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public static bool IsFileWritable(string path)
        {
            try
            {
                if (!File.Exists(path))
                {
                    return true;
                }

                using (System.IO.FileStream stream = File.OpenWrite(path))
                {
                    stream.Close();
                }

                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

keco schrieb am:  17.05.2010 20:01:29

Hallo, unter Windows Vista würde die Funktion wohl true zurückgeben, wenn ich als Dateipfad C:\myFile.txt angeben würde, sofern diese nicht vorhanden ist. Ich bin ziemlich sicher, dass es dabei Probleme geben wird, beim erstellen. Vielleicht sollte die Funktion entsprechend angepasst werden? Eine Möglichkeit wäre das erstellen und sofortige löschen der Datei. Wenig elegant. Vielleicht hilft es auch zu prüfen, ob der aktuelle Benutzer dafür Berechtigungen hat.
Firendeath schrieb am:  18.05.2010 15:57:16

Wäre das nicht eher :
public static bool IsFileWritable(string path)
{
try
{
if (!File.Exists(path))
{
return true;
}

FileStream stream = File.OpenWrite(path, FileMode.Open, FileAccess.Write);
stream.Close();

return true;
}
catch (Exception)
{
return false;
}
}
Christopher Kk schrieb am:  18.05.2010 19:46:41

Wenn es nur darum geht zu überprüfen warum checkt ihr das nicht so:

FileInfo inf = new FileInfo("test");

if(inf.IsReadOnly)
//dann ist sie nur lesbar.

Spart auf jedenfall dafür ne Exception zu bemühen und widerspricht auch dem Prinzip von Exceptions, weil das ja keine Ausnahme ist so ein Fall sondern was ganz normales.
Christopher Kk schrieb am:  18.05.2010 19:47:16

zu überprüfen ob die datei schreibar ist. Das meinte ich natürlich.
keco schrieb am:  18.05.2010 21:47:00

Gilt für das Dateiattribut "ReadOnly". Sichert aber nicht dagegen ab, ob ein E/A-Fehler auftreten kann, wofür die Fehlerbehandlung durchaus sinnvoll ist. Was sie prinzipiell bei jedem Schreib- und Lesevorgang ist.
Christopher Kk schrieb am:  19.05.2010 07:41:15

Jo das ist natürlich richtig. Deshalb schrieb ich ja auch "wenns nur darum geht zu prüfen ob die datei schreibrechte besitzt". Ansonsten haste Recht.
hackman schrieb am:  21.05.2010 00:47:48

dateistreams in einem using konstrukt verwenden!!!
(oder ein finally block einführen der die datei wieder schließt)

warum soll eine datei beschreibbar sein, wenn sie nicht existiert?! kann die datei erstellt werdeN?
bigdeak schrieb am:  21.05.2010 12:16:10

Danke erstmal für die Kommentare, ich werde den Snippet noch verbessern und anpassen.


Diese Snippets könnten für Sie interessant sein:
[VB.NET] Datei im Explorer anzeigen und markieren
[C#] Datei anlegen
[C#] Aktuelles Verzeichnis auslesen
[VB.NET] CRC32 Hash einer Datei berechnen
[VB.NET] Den MD5 Hash einer Datei ermitteln
[VB.NET] Datei mittels Windows Dialog löschen
[VB.NET] Datei mittels Windows Dialog verschieben
[VB.NET] Datei mittels Windows Dialog kopieren
[VB.NET] Den SHA1 Hash einer Datei ermitteln
[VB.NET] Prüfen ob Datei gerade benutzt wird
[C#] Dateien in die Zwischenablage kopieren
[ASP.net] Textdatei zum Download anbieten
[C#] MD5-Hash von Dateien ermitteln
[C#] Arraylist in Textdatei schreiben
[C#] Textdatei in Arraylist speichern
[C#] SHA-1 Hash einer Datei erzeugen
[VB.NET] Datei Paketweise Kopieren
[ASP.net] Datei nach Bildupload prüfen
[C#] Dateien suchen mit LINQ
[C#] Datei/Ordner durch Erweiterungsmethoden abfragen
[C#] Datei-Eigenschaften zeigen (Eigenschaften-Fenster)
[C#] CSV Dateien schreiben
[C#] Create Nice File Size in C#
[VB.NET] Programmpfad mittels Erweiterung ermitteln in VB
[VB.NET] Dateien nach Datum sortieren
[C#] CSV und XML-Datei Datenbank-Import (incl. valid-check)
[C#] Datei umbenennen
[C#] Datei im Windows-Explorer anzeigen und markieren
[VB.NET] File Owner / File Besitzer
[VB.NET] wie in der CMD Pfad zu Datei ermitteln anhand des EXE-namens
[C#] Anzahl der Dateien in einem Ordner ermitteln
[VB.NET] Dateigröße als formatierter String
[VB.NET] Alle Dateien eines Ordners auflisten
[VB.NET] Den kurzen Pfad einer Datei ermitteln (8.3 Format)
[VB.NET] Klasse für Dateisuche
[C#] Erzeugen eines zufälligen Strings
[VB.NET] Dummy Datei erstellen
[C#] Datei in Papierkorb verschieben
[C#] Zeilen einer Datei zählen
[C#] Schreibschutz einer Datei setzen / entfernen
[ASP.net] Eine Datei zum Download anbieten
[VB.NET] Prüfen ob Dateiattribut vorhanden ist
[VB.NET] Bestimmtes Dateiattribut entfernen
[VB.NET] Datei ein bestimmtes Attribut geben
[VB.NET] Prüfen ob Datei eine EXE Datei ist
[C#] Prüfen, ob eine Datei ausfürbar ist (.exe, .bat, etc.)
[C#] Alle Dateien eines Ordners auflisten - C# Version -
[C#] eindeutigen Dateinamen ermitteln
[VB.NET] Datei-Inhalt anzeigen
[C#] Dateien und Ordner rekursiv löschen
[C#] Stream in Datei umleiten
[C#] Ordnergröße ermitteln
[C#] Automatisches Umbenennen eines Pfades
[C#] Kapazität mit Einheit darstellen
[C#] LogWriter klasse
[C#] MIMETypeManager
[C#] externes Programm aufrufen (andere Version) mit Parameter
[C#] Herausfinden welches Programm ein bestimmtes Dokument öffnet
[VB.NET] Gibt das Bytearray einer Datei zurück
[C#] Datei ein bestimmtes Attribut geben/setzen
[VB.NET] Klasse für SimpleFileVerification (SFV)
[C#] Laden und speichern von komprimierten Binärdaten
[C#] Datei einlesen und als ArrayList jede Zeile zurückliefern
[C#] Parallele Dateisuche über mehrere Laufwerke
[C#] Byte Größenangaben als String formatieren (KB, MB, GB, ...)
[C#] Textdatei einlesen auf verschiedene Arten
[C#] Datei Teilweise einlesen (gestückelt)
[C#] Bestimmte Zeile einer Datei löschen
[C#] File Container
[C#] PDF Dateien erstellen
[C#] Sichern einer MS-SQLServer Datenbank aus C#
[C#] Datei mi GZip packen
[C#] ini Datei anlegen - mit Dictionary
[C#] Dummy Files erzeugen. ( Mit Inhalt )
[C#] Byte-Array in Struktur kopieren
[C#] Text in Textdateien suchen
[VB.NET] Prüfen, ob eine Datei überschrieben werden kann
[C#] Eigenschaften aller Steuerlemente eines Formulars setzen
[C#] Prüfen ob in einem Verzeichnis Schreibrechte verfügbar sind!

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.