Blob Blame History Raw
--- wallpapoz-0.6.1/src/wallpapoz.dircheck	2011-07-24 00:54:43.000000000 +0900
+++ wallpapoz-0.6.1/src/wallpapoz	2011-12-30 14:28:16.000000000 +0900
@@ -536,6 +536,9 @@
         # if recursive, we use walktree
         if recursive_widget.get_active():
           # looping with walktree method
+          if not os.path.isdir(cur_dir):
+            return
+
           for (basepath, children) in self.walktree(cur_dir,False):
             for child in children:
               # get the filename
@@ -551,7 +554,11 @@
         # if not just looping the directory with ordinary fashion
         else:
           # looping all files in this directory
-          for file in os.listdir(cur_dir):
+          try:
+            dlist = os.listdir(cur_dir)
+          except OSError:
+            return
+          for file in dlist:
             # get the filename
             filename = os.path.join(cur_dir, file)
             # we interested in file, not directory
@@ -573,6 +580,9 @@
         # if recursive, we use walktree
         if recursive_widget.get_active():
           # looping with walktree method
+          if not os.path.isdir(cur_dir):
+            return
+
           for (basepath, children) in self.walktree(cur_dir,False):
             for child in children:
               # get the filename
@@ -588,7 +598,11 @@
         # if not, just looping with ordinary fashion
         else:
           # looping all files in this directory
-          for file in os.listdir(cur_dir):
+          try:
+            ddir = os.listdir(cur_dir)
+          except OSError:
+            return
+          for file in ddir:
             # get the filename
             filename = os.path.join(cur_dir, file)
             # we interested in file, not directory
@@ -618,6 +632,9 @@
       cur_dir = filechooser_widget.get_filename()
       # if recursive, we use walktree
       if recursive_widget.get_active():
+        if not os.path.isdir(cur_dir):
+          return
+
         # looping with walktree method
         for (basepath, children) in self.walktree(cur_dir,False):
           for child in children:
@@ -634,7 +651,11 @@
       # if not recursive, just looping the directory with ordinary fashion
       else:
         # looping all files in this directory
-        for file in os.listdir(cur_dir):
+        try:
+          dlist = os.listdir(cur_dir)
+        except OSError:
+          return
+        for file in dlist:
           # get the filename
           filename = os.path.join(cur_dir, file)
           # we interested in file, not directory
@@ -1210,7 +1231,11 @@
 
   # helping method
   def walktree (self, top = ".", depthfirst = True):
-    names = os.listdir(top)
+    try:
+      names = os.listdir(top)
+    except OSError:
+      names = []
+      yield top, names
     if not depthfirst:
       yield top, names
     for name in names: