Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / SharpZibLib - вопрос / 8 сообщений из 8, страница 1 из 1
29.08.2006, 17:06
    #33950431
Brian Setzer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SharpZibLib - вопрос
Добрый день!
Подскажите плиз!

ZipInputStream s = new ZipInputStream(this.Project.PostedFile.InputStream);

ZipEntry theEntry;
while ((theEntry = s.GetNextEntry()) != null)
{
string directoryName = Path.GetDirectoryName(theEntry.Name);
string fileName = Path.GetFileName(theEntry.Name);

// create directory
Directory.CreateDirectory("C:\\"+directoryName);

if (fileName != String.Empty)
{
FileStream streamWriter = File.Create("C:\\"+theEntry.Name);

int size = 2048;
byte[] data = new byte[2048];
while (true)
{
size = s.Read(data, 0, 1);


Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

на Строке size = s.Read(data, 0, 1);

В чем ошибка?
...
Рейтинг: 0 / 0
29.08.2006, 17:09
    #33950439
Brian Setzer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SharpZibLib - вопрос
Добрый день!
Подскажите плиз!

ZipInputStream s = new ZipInputStream(this.Project.PostedFile.InputStream);

ZipEntry theEntry;
while ((theEntry = s.GetNextEntry()) != null)
{
string directoryName = Path.GetDirectoryName(theEntry.Name);
string fileName = Path.GetFileName(theEntry.Name);

// create directory
Directory.CreateDirectory("C:\\"+directoryName);

if (fileName != String.Empty)
{
FileStream streamWriter = File.Create("C:\\"+theEntry.Name);

int size = 2048;
byte[] data = new byte[2048];
while (true)
{
size = s.Read(data, 0, 1);


Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

на Строке size = s.Read(data, 0, 1);

В чем ошибка?

Да, ну разумеется s.CanRead стоит true и папка с файлом создается...
...
Рейтинг: 0 / 0
29.08.2006, 17:22
    #33950492
Brian Setzer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SharpZibLib - вопрос
Добрый день!
Подскажите плиз!

ZipInputStream s = new ZipInputStream(this.Project.PostedFile.InputStream);

ZipEntry theEntry;
while ((theEntry = s.GetNextEntry()) != null)
{
string directoryName = Path.GetDirectoryName(theEntry.Name);
string fileName = Path.GetFileName(theEntry.Name);

// create directory
Directory.CreateDirectory("C:\\"+directoryName);

if (fileName != String.Empty)
{
FileStream streamWriter = File.Create("C:\\"+theEntry.Name);

int size = 2048;
byte[] data = new byte[2048];
while (true)
{
size = s.Read(data, 0, 1);


Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

на Строке size = s.Read(data, 0, 1);

В чем ошибка?

Да вот еще что поменял на size=s.ReadByte();

И получил:

Exception Details: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: length



ICSharpCode.SharpZipLib.Zip.Compression.Streams.InflaterInputBuffer.ReadClearTextBuffer(Byte[] outBuffer, Int32 offset, Int32 length)
   ICSharpCode.SharpZipLib.Zip.ZipInputStream.BodyRead(Byte[] b, Int32 off, Int32 len)
   ICSharpCode.SharpZipLib.Zip.ZipInputStream.InitialRead(Byte[] destination, Int32 offset, Int32 count)
   ICSharpCode.SharpZipLib.Zip.ZipInputStream.Read(Byte[] destination, Int32 index, Int32 count)
   ICSharpCode.SharpZipLib.Zip.ZipInputStream.ReadByte()
...
Рейтинг: 0 / 0
30.08.2006, 19:11
    #33953704
Brian Setzer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SharpZibLib - вопрос
Добрый день!
Подскажите плиз!

                ZipInputStream s = new ZipInputStream(this.Project.PostedFile.InputStream);
        
                ZipEntry theEntry;
                while ((theEntry = s.GetNextEntry()) != null) 
                {
                    string directoryName = Path.GetDirectoryName(theEntry.Name);
                    string fileName      = Path.GetFileName(theEntry.Name);
            
                    // create directory
                    Directory.CreateDirectory("C:\\"+directoryName);
            
                    if (fileName != String.Empty) 
                    {
                        FileStream streamWriter = File.Create("C:\\"+theEntry.Name);
                
                        int size = 2048;
                        byte[] data = new byte[2048];
                        while (true) 
                        {
                            size = s.Read(data, 0, 1);


Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

на Строке size = s.Read(data, 0, 1);

В чем ошибка?

Да, ну разумеется s.CanRead стоит true и папка с файлом создается...



Ну что никто не сталкивался с таким?
...
Рейтинг: 0 / 0
30.08.2006, 21:42
    #33953904
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SharpZibLib - вопрос
Код: plaintext
1.
2.
3.
4.
streamWriter=File.Create(aDestDir+directoryName+fileName);
while((size=s.Read(data, 0 ,data.Length))> 0 )
   streamWriter.Write(data, 0 ,size);
streamWriter.Close(); 
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
31.08.2006, 12:15
    #33954994
Brian Setzer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SharpZibLib - вопрос
streamWriter=File.Create(aDestDir+directoryName+fileName);
while((size=s.Read(data,0,data.Length))>0)
streamWriter.Write(data,0,size);
streamWriter.Close();
_________________
"Helo, word!" - 17 errors 56 warnings

Да это понятно...

У меня тоже самое вроде и написано, но при первом же проходе s.Read(data,0,data.Length) выдает ошибку...
...
Рейтинг: 0 / 0
01.09.2006, 00:35
    #33957097
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SharpZibLib - вопрос
Brian Setzer
но при первом же проходе s.Read(data,0,data.Length) выдает ошибку

какую?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
		public static void Extract(string aZipFileName, string aDestDir, bool WithFullPath)
		{
			ZipInputStream
				s=null;

			FileStream
				streamWriter=null;

			try
			{
				try
				{
					if(aDestDir==null || aDestDir==string.Empty)
						aDestDir=Directory.GetCurrentDirectory();
					if(aDestDir.EndsWith(Path.DirectorySeparatorChar.ToString()))
						aDestDir=aDestDir.Remove(aDestDir.Length- 1 , 1 );
					if(!Directory.Exists(aDestDir))
						Directory.CreateDirectory(aDestDir);
					aDestDir+=Path.DirectorySeparatorChar;

					s=new ZipInputStream(File.OpenRead(aZipFileName));

					ZipEntry
						entry;

					string
						directoryName,
						fileName;

					int
						pos,
						size= 8192 ;

					byte[]
						data=null;
					
					while(data==null && size!= 0 )
					{
						try
						{
							data=new byte[size];
						}
						catch(OutOfMemoryException)
						{
							size>>= 1 ;
						}
					}
					if(data==null && size== 0 )
						throw(new Exception("Insufficient memory")); 

					while((entry=s.GetNextEntry())!=null)
					{
						if(WithFullPath)
						{
							directoryName=Path.GetDirectoryName(entry.Name);
							if((pos=directoryName.IndexOf(Path.VolumeSeparatorChar))>= 0 )
								directoryName=directoryName.Remove( 0 ,pos+ 1 );
							if(directoryName.StartsWith(Path.DirectorySeparatorChar.ToString()))
								directoryName=directoryName.Remove( 0 , 1 );
							if(!Directory.Exists(aDestDir+directoryName))
								Directory.CreateDirectory(aDestDir+directoryName);
							directoryName+=Path.DirectorySeparatorChar;
						}
						else
							directoryName=string.Empty;

						if((fileName=Path.GetFileName(entry.Name))!=string.Empty)
						{
							streamWriter=File.Create(aDestDir+directoryName+fileName);
							while((size=s.Read(data, 0 ,data.Length))> 0 )
								streamWriter.Write(data, 0 ,size);
							streamWriter.Close();
							streamWriter=null;
							File.SetLastWriteTime(aDestDir+directoryName+fileName,entry.DateTime);
						}
					}
				}
				catch(Exception eException)
				{
					throw(new Exception(eException.GetType().FullName+Environment.NewLine+"Message: "+eException.Message+Environment.NewLine+"StackTrace:"+Environment.NewLine+eException.StackTrace));
				}
			}
			finally
			{
				if(streamWriter!=null)
					streamWriter.Close();
				if(s!=null)
					s.Close();
			}
		}
это работает без проблем...
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
01.09.2006, 20:21
    #33959788
vbnet2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SharpZibLib - вопрос
а зачем вам исходники вообще? Я брал готовую библиотеку и все преотлично работает в боевом режиме...
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / SharpZibLib - вопрос / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]