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

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
SharpZibLib - вопрос
    #33950439
Brian Setzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Подскажите плиз!

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
SharpZibLib - вопрос
    #33950492
Brian Setzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Подскажите плиз!

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
SharpZibLib - вопрос
    #33953704
Brian Setzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Подскажите плиз!

                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
SharpZibLib - вопрос
    #33953904
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
SharpZibLib - вопрос
    #33954994
Brian Setzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
SharpZibLib - вопрос
    #33957097
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
SharpZibLib - вопрос
    #33959788
Фотография vbnet2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем вам исходники вообще? Я брал готовую библиотеку и все преотлично работает в боевом режиме...
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / SharpZibLib - вопрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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